我想知道当我拔掉笔记本电脑时会向内核发送什么信号。我需要这些信息来编写一个程序来自动切换电源模式。
我目前使用的是 Ubuntu 23.10。
答案1
当我拔掉笔记本电脑时,哪个信号被发送到内核。
不完全是 ”发送到核心“因为据我所知你不能从用户空间内拦截它……然而,相关事件从可以监听内核...一种方法是使用udevadm
像这样:
udevadm monitor -k
我需要这些信息来制作一个程序来自动切换电源模式。
然而,我认为一个更好、更准确、更直接的方法是监控UPower 守护进程与upower
工具并根据您的喜好过滤其输出,然后通过管道传输到您选择的工具,例如awk
像这样:
upower --monitor-detail |
awk '/online:.*yes/ && (a != 1) {
print "AC"
a = 1
b = 0
}
/on-battery:.*yes/ && (b != 1) {
print "Battery"
b = 1
a = 0
}'
...应该打印AC
当当前电源变为电源或打印Battery
当当前电源变为电池时。
答案2
更简单的方法:
创建一个循环,不断检查 的状态/sys/class/power_supply/ADP1/online
。0 = 有线;1 = 无线。ADP1 可以是其他东西,因此使用/sys/class/power_supply/*/online
更通用