acpid - 拔掉插头后休眠

acpid - 拔掉插头后休眠

我是 Linux 编程新手(特别是 lubuntu),我正在开展一个项目,以让一台旧的、废弃的笔记本电脑启动并按照我想要的方式运行。我安装了 acpi 和 acpid,当我运行 acpi 命令时,我会得知我的笔记本电脑是否已插入(充电)或拔出(放电)。

我现在想让笔记本电脑在放电时自动休眠。我的第一个想法是编写一个脚本,每隔 30 秒左右轮询一次 acpi,然后每当它响应“正在放电”一词时运行一个休眠命令。不过,我知道 acpid 是更好用的工具,因为它更受事件驱动。我似乎找不到任何有关使笔记本电脑在拔掉插头后休眠的材料 - 有什么建议吗?

答案1

守护acpid进程应通过 ACPI 子系统接收电池事件。当您拔出/插入笔记本电脑时,应该会出现相关的电池事件。这些事件可以与关闭/挂起/休眠系统等操作相关联。

/var/log/messages首先,尝试通过拔下笔记本电脑时观察或相关日志文件来验证。应该有类似的东西

... ACPI action undefined: ...

如果没有任何内容,您可以尝试acpi_listen连接到 acpid 并侦听事件的命令。

/etc/acpi/events然后,您可以在电池事件目录下配置通用事件处理程序。在那里创建一个文件,例如battery.conf包含以下内容:

event=battery.*
action=/etc/acpi/actions/battery.sh

它表示任何电池事件都应该由脚本处理battery.sh。在此脚本中,我将监视文件中可用的电池状态/proc/acpi/battery/*/state。特别是检查线路“充电状态”应该改为“放电”当您拔掉笔记本电脑的插头或“正在充电/已充电”当你把它插回去时。

根据此信息,您可以从事件处理程序运行 hibernate 命令battery.sh。此外,您还可以找到一些其他有用的示例,例如github

相关内容