lightdm 中超时后休眠

lightdm 中超时后休眠

是否可以将 lightdm 设置为在无人活动 5 分钟后休眠?仅在 LightDM 中登录后没有此行为?我希望能够通过按 Ctrl+Alt+Del 注销 lightdm,它会在超时后自动休眠,而不是关闭或休眠我的电脑。

答案1

您可以这样做,但这并不简单。首先,您可以设置一个在 lightdm 启动显示时运行的脚本。由于它会在您注销时重新启动显示,因此您需要编写一个小脚本,其中包含一个 5 分钟计时器,该计时器在 5 分钟延迟后休眠。您可以通过编辑配置文件来设置 lightdm.conf 以运行此脚本,如下所示:

display-setup-script=hibernate_delay.sh

然后,您可以让 lightdm 在启动用户会话时运行第二个脚本来取消计时器。您可以在 lightdm.conf 中按如下方式设置该脚本:

session-setup-script=cancel_hibernate.sh

至于这些脚本的内容,它们可能很简单。hibernate_delay.sh 将是这样的,尽管您需要在后台运行的第二个脚本中执行“touch”行之后的部分:

#!/bin/sh
touch /tmp/hibernate_timer
sleep 300
if [ -f /tmp/hibernate_timer ];
then
  echo "5 minutes is up, hibernating"
  pmi action hibernate
else
  echo "hibernation cancelled"
fi

cancel_hibernate.sh 脚本只会删除 hibernate_timer 文件,以使其不会休眠:

#!/bin/sh
rm -f /tmp/hibernate_timer

现在,我回答中的理论是正确的,但我没有尝试过这些脚本,而且正如我上面提到的,hibernate_delay.sh 脚本需要分叉第二个脚本,这样 sleep 就不会阻塞。我相信还有更好的方法可以做到这一点(使用命令值得一看),但与 lightdm 的连接点是相同的。

祝你好运!

相关内容