我想知道如何使用 C 在 Linux 中检测系统是否进入待机模式。我WM_POWERBROADCAST
在 windows 中找到了一条为此目的调用的消息,它在进入睡眠模式之前发送了此消息。
对于 Linux,C 中是否有任何替代方案?
我听说 DBus 可以用于相同的目的,有人可以解释一下吗?
最后我找到了解决方案。
我们可以为此使用 pm 实用程序。
如果您将任何 shell 脚本放在 /etc/pm/sleep.d 文件夹中,它将在系统进入睡眠之前和系统恢复之后自动执行。
内容会像
#!/bin/bash
case $1 in
suspend)
#suspending to RAM
/home/harikrishnan/Desktop/sleepd Sleeping
;;
resume)
#resume from suspend
sleep 3
/home/harikrishnan/Desktop/sleepd Woken
;;
esac
在这里它将使用参数执行 /home/harikrishnan/Desktop/sleepd 程序
AFAIK 在 Linux 中没有这样的信号,但你可以试试
a) acpid
daemon hooks,如果它存在,acpid 配置通常在/etc/acpi
b) DBus daemon hooks,如果它存在于系统上
c) 读取acpid
源代码以查看它如何获取信号
d) 编写您自己的内核模块