内置 ACPI 功能可在特定时间后暂停 Ubuntu PC。我想要实现的是,在预定义的空闲时间后完全关闭 PC,而不是暂停。有人能帮我做到这一点吗?我能够找到空闲时关闭脚本,但这些脚本不允许我实现以下功能:
- 在特定时间之后闲置并关机。
- 无论用户是否登录,它都应该关闭。
请帮忙,我可以使用内置 ACPI 功能在空闲时关机并更改默认时间吗,或者还有其他方法可以执行相同操作吗?
答案1
你可以同时实现这两件事
- 在特定时间之后闲置并关机。
- 无论用户是否登录,它都应该关闭。
使用一个简单的 bash 脚本。
该脚本将检查空闲时间,如果大于给定的数字,它将完全关闭系统。
然后,您可以设置此脚本由 root cronjob 每分钟或每 10 秒(根据您的喜好)执行一次。只要您的 PC 正在运行,root cron 就会在您登录或未登录用户时运行。所以这将解决您的问题。
要获取当前空闲时间(以毫秒为单位),您可以安装xprintidle
:
sudo apt-get install xprintidle
我为您创建了一个简单的 bash 脚本,您可以将其交给 root cron 执行:
#!/bin/bash
export DISPLAY=:0
IDLE_TIME=`xprintidle`
MAX_IDLE_TIME=3600000
if [ "$IDLE_TIME" -ge "$MAX_IDLE_TIME" ]; then
shutdown -h now
fi
export DISPLAY=:0
请注意,为了使 xprintidle 在 cron 下正常工作,这是必需的MAX_IDLE_TIME
。是计算机关闭后的最大空闲时间(以毫秒为单位)。3 600 000 毫秒等于一小时。您可以根据需要更改此值。
因此现在将此文件保存在您的文件系统上的某个位置(最好不要保存在您的主文件夹中,因为它可能已加密)。赋予 sh 文件可执行权限:
chown +x file.sh
然后设置 root cron 每分钟执行一次:
sudo crontab -e
并输入:
* * * * * /path/to/file.sh