电脑连接后如何保持开机状态?

lin*_*tar 7 suspend

我使用的是 64 位 Linux Mint Debian v2。

我希望计算机在停止使用后不久进入睡眠状态,因此我将不活动超时设置为 10 分钟。

但是,当我通过 SSH 使用我的笔记本电脑连接到我的计算机时,即使我正在执行诸如复制文件或通过 samba 观看视频之类的操作,它也会进入睡眠状态。

如何在不更改睡眠时间设置的情况下停止此操作?计算机进入睡眠状态的“无活动”究竟是什么?也许,相反更容易解释,什么是活性保持计算机苏醒?

我的笔记本电脑也是 LMDE v2。

Fab*_* N. 4

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 )

  • @FabianN。哦,太棒了!优秀的盗窃!:) 工作完美。FWIW我没有`netstat`但安装了`iproute2`,所以我使用了`ExecStart=/usr/bin/sh -c "if [ $(ss statebuilt '( dport = 22 or sport = 22 )' | wc -l) -gt 1 ]; then exit 1; else exit 0; fi"`,效果很好 (2认同)