我使用的是 64 位 Linux Mint Debian v2。
我希望计算机在停止使用后不久进入睡眠状态,因此我将不活动超时设置为 10 分钟。
但是,当我通过 SSH 使用我的笔记本电脑连接到我的计算机时,即使我正在执行诸如复制文件或通过 samba 观看视频之类的操作,它也会进入睡眠状态。
如何在不更改睡眠时间设置的情况下停止此操作?计算机进入睡眠状态的“无活动”究竟是什么?也许,相反更容易解释,什么是活性保持计算机苏醒?
我的笔记本电脑也是 LMDE v2。
Init.d中的所有脚本都/etc/pm/sleep.d
将在进入睡眠模式之前执行,如果其中任何一个脚本返回非零状态,则不会进入睡眠模式。
因此,您可以在那里放置一个脚本,查找您不希望被识别为“PC 仍在使用”的所有进程,如果其中任何进程仍在运行,或者您能够编写脚本的任何其他条件,则只需返回 1。
对于 ssh,您可以用来netstat -tnpa | grep ESTABLISHED.*sshd
检查打开的连接,对于 samba,您可以解析以下输出smbstatus
编辑: 如果您正在使用
systemd:创建一个/etc/systemd/system/dontsleep.service
像这样的
[Unit]
Description=Inhibit suspend in case of [some] activity
Before=sleep.target
[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c "some command that that returns an failure exit status if you don't want the pc to go into sleep mode (e.g exit 1)"
[Install]
RequiredBy=sleep.target
Run Code Online (Sandbox Code Playgroud)
现在,RequiredBy= & Before=sleep.target
您的新服务dontsleep.service
已成为 的依赖项,sleep.target
并且在该服务成功执行之前,systemd 无法进入睡眠模式(例如exit 0
)
不要忘记启用它systemctl enable dontsleep.service
(从这里窃取的想法:https://bbs.archlinux.org/viewtopic.php ?pid=1380080#p1380080 )