闲置 2 小时后如何关闭 Ubuntu?

red*_*war 11 shutdown scripts autostart power-management idle

运行:Xubuntu 14.04 32 位。

我已经阅读了一些过时的、不工作的、不同的工作,我想在这里和其他地方找到答案。我有一个脚本导致在我将笔记本电脑设置为自动启动后在启动时关闭它。

尽管该工具已于 2011 年消失,但我也尝试安装 complexshutdown,并且在 Lauchpad 上有一个错误,即他的确切选项不可用。它甚至没有安装在 14.04 上。

我正在寻找一个简单直接的脚本,该脚本经过实际测试和工作,我可以将其放入自动启动中,该脚本除了检查活动(鼠标/键盘)并在 2 小时内没有任何活动时关闭我的笔记本电脑。

谢谢。

red*_*war 10

这可能是最好的解决方案。无需调整和运行屏幕保护程序。

安装 sudo apt-get install xprintidle

将此脚本放入自动启动:

#!/bin/bash

idletime=$((1000*60*60*2)) # 2 hours in milliseconds

while true; do
    idle=`xprintidle`
    echo $idle
    if (( $idle > $idletime )); then
        #sudo shutdown -P now
        dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
    fi
    sleep 1
done
Run Code Online (Sandbox Code Playgroud)

评论和@Jobin 的回答确实让我再次调查自己,实际上我发现了一个未完成的脚本,xprinttime但脚本中没有任何循环。可能还没有完成,因为当时我的 linux/bash 知识并不好。我也确实把我在 rc.local 中的脚本或类似的东西在启动时触发了关机。感谢@Jobin 提醒如何在 XFCE 中添加启动应用程序,我已经知道了这一点,但是......以及 dbus 的功劳,从未见过,比关闭更好,因为它不需要 root。


job*_*bin 5

在查看了一些在一段时间不活动后关闭的选项后,这似乎xautolock是最简单的方法。所有学分都归功于Sparhawk提及xautolock.

感谢Sneetsher指出 xscreensaver。使用 xscreensaver,我可以手动指定在一段时间不活动后要执行的操作。要使用 xscreensaver,您需要使用以下命令安装它:

sudo apt-get install xscreensaver
Run Code Online (Sandbox Code Playgroud)

或从软件中心安装它,然后使用以下命令运行一次:

xscreensaver-demo
Run Code Online (Sandbox Code Playgroud)

或在仪表板上键入“xscreensaver”并打开“Screensaver”。

这将创建一个~/.xscreensaver文件。打开它并搜索该行:

programs:                                                                     \
Run Code Online (Sandbox Code Playgroud)

并添加:

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true \n\
Run Code Online (Sandbox Code Playgroud)

就在下面

programs:                                                                     \
Run Code Online (Sandbox Code Playgroud)

线。

您可以通过更改以 开头的行来指定触发关闭的时间timout。修改为

timeout:        2:00:00
Run Code Online (Sandbox Code Playgroud)

两小时后关机。

这里查看我的.xscreensaver文件。

这应该在两小时不活动或您在脚本中指定的任何时间后关闭您的机器。

笔记:

  • 看看这个问题,看看如何在启动时添加 xscreensaver。

  • 我尝试使用复杂关闭,但这里的错误似乎影响了我,所以不可能发生。否则,图形应用程序将可用于此。

  • 这可以使用 xautolock 来实现,但是,正如redanimalwar指出的那样,如果不修改其源代码并重新编译,就不可能出现超过 1 小时的超时。


小智 5

这是一个老问题,但我想我会用在 Ubuntu 21.04 中对我有用的方法来回答它。您可以IdleActionsystemd/logind.conf文件中设置一个。

使用以下命令编辑文件:

sudo nano /etc/systemd/logind.conf
Run Code Online (Sandbox Code Playgroud)

并添加:

IdleAction=poweroff
IdleActionSec=120min
Run Code Online (Sandbox Code Playgroud)

我已经对其进行了测试,IdleActionSec=1min并且机器按预期关闭。