分页: 1 / 1

如何实时获取电源事件?

发表于 : 2017-02-26 11:24
gydoesit
在笔记本电脑的外接电源停电时,如何实时获取这个电源事件?然后再按设定的时间或电量,执行关机程序

非实时的我看可以用acpi命令, acpi -a可以看到外接电源状态。但是,这样就只能写个定时脚本,比如每分钟执行一次。
有没有更好的实时的办法,或者一个现成的程序,在ac电源断开时,自动执行某个脚本?

如果只能采用定时执行的办法,比如每分钟查一下
acpi -a
但停电时,要延长几分钟关机的话,这期间每分钟仍在重新执行脚本,似乎有冲突,作一个文件标记似乎也行,但总是不爽?或者设置一个环境变量,但变更作用域似乎不及于另一个脚本?

Re: 如何实时获取电源事件?

发表于 : 2017-02-26 13:01
vickycq
可尝试使用 udev 或 acpid 事件
0. 使用 acpid
使用命令 'acpi_listen' 找出断开电源适配器的 acpi 事件,并在 /etc/acpi/events/ 中定义事件钩子。
参考 https://wiki.archlinux.org/index.php/Ac ... ple_events

1. 使用 udev
在 /etc/udev/rules.d 中建立 udev 规则,针对您的电池设备 sys 节点中的相应属性字段做动作。
参考 http://stackoverflow.com/questions/1506 ... sconnected