我试图通过在桌面不活动时将其切换到挂起模式来节省电量。但是,许多桌面也可以由其所有者通过SSH访问。已部署了一个waokelan解决方案,以使所有者能够打开计算机,但是问题是,即使SSH连接已打开,计算机也将在10分钟内再次自动挂起。
我想要做的是在“活动”定义中包括活动的SSH会话。
问题是可以通过设置polkit规则来完成吗?是否可以通过放置一个在实际挂起之前运行的脚本来完成,如果找到SSH会话,则将其中止?我需要一个干净的合法方法。如果不是那样,那么也欢迎采用骇人听闻的方式。
当前的朴素hacky解决方案:编辑/usr/sbin/pm-suspend
:
#check for SSH sessions, and prevent suspending:
if [ "$(who | grep -cv "(:")" -gt 0 ]; then
echo "SSH session(s) are on. Not suspending."
exit 1
fi
这达到了目的。但是我不知道更新什么时候会覆盖文件/usr/sbin/pm-suspend
。我也不知道这如何与tuxonice之类的其他挂起实现一起工作。
[
如果编写,则可以放弃if who | grep -qv :0; then
对它的调用(假设您具有符合grep
GNU grep 的POSIX规范)。
grep -cv :0
而不是通过wc
吗?