使用 ACPI 内置功能在空闲时关机

使用 ACPI 内置功能在空闲时关机

内置 ACPI 功能可在特定时间后暂停 Ubuntu PC。我想要实现的是,在预定义的空闲时间后完全关闭 PC,而不是暂停。有人能帮我做到这一点吗?我能够找到空闲时关闭脚本,但这些脚本不允许我实现以下功能:

  1. 在特定时间之后闲置并关机。
  2. 无论用户是否登录,它都应该关闭。

请帮忙,我可以使用内置 ACPI 功能在空闲时关机并更改默认时间吗,或者还有其他方法可以执行相同操作吗?

答案1

你可以同时实现这两件事

  1. 在特定时间之后闲置并关机。
  2. 无论用户是否登录,它都应该关闭。

使用一个简单的 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

相关内容