如何实时获取电源事件?

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
gydoesit
帖子: 153
注册时间: 2006-10-10 11:01

如何实时获取电源事件?

#1

帖子 gydoesit » 2017-02-26 11:24

在笔记本电脑的外接电源停电时,如何实时获取这个电源事件?然后再按设定的时间或电量,执行关机程序

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

如果只能采用定时执行的办法,比如每分钟查一下
acpi -a
但停电时,要延长几分钟关机的话,这期间每分钟仍在重新执行脚本,似乎有冲突,作一个文件标记似乎也行,但总是不爽?或者设置一个环境变量,但变更作用域似乎不及于另一个脚本?
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

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

#2

帖子 vickycq » 2017-02-26 13:01

可尝试使用 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
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
回复