![如何在连接时保持计算机开机?](https://linux22.com/image/74933/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%BF%9E%E6%8E%A5%E6%97%B6%E4%BF%9D%E6%8C%81%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%BC%80%E6%9C%BA%EF%BC%9F.png)
我正在使用 Linux Mint Debian v2,64 位。
我希望计算机在停止使用后立即进入睡眠状态,因此我将不活动超时设置为 10 分钟。
但是,当我使用笔记本电脑通过 SSH 连接到计算机时,即使我正在执行复制文件或通过 samba 观看视频等操作,它也会进入睡眠状态。
如何在不更改睡眠时间设置的情况下停止此操作?究竟什么构成计算机进入睡眠状态的“无活动”?也许相反的情况更容易解释,什么构成活动让计算机保持唤醒状态?
我的笔记本电脑也是 LMDE v2。
答案1
初始化程序d中的所有脚本/etc/pm/sleep.d
都将在进入睡眠模式之前执行,如果其中任何脚本返回非零状态,则不会进入睡眠模式。
因此,您可以在那里放置一个脚本,查找您不希望被识别为“PC 仍在使用”的所有进程,如果其中任何进程仍在运行,或者您能够编写脚本的任何其他条件,则只需返回 1。
对于 ssh,您可以用来netstat -tnpa | grep ESTABLISHED.*sshd
检查打开的连接,对于 samba,您可以解析以下输出smbstatus
编辑: 如果您正在使用
系统: 创建一个/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
现在,RequiredBy= & Before=sleep.target
您的新dontsleep.service
服务已成为 的依赖项sleep.target
,并且在该服务成功执行之前,systemd 无法进入睡眠模式(例如exit 0
)
不要忘记启用它systemctl enable dontsleep.service
(从这里盗来的想法:https://bbs.archlinux.org/viewtopic.php?pid=1380080#p1380080)