我想知道如何在Linux中使用C检测系统是否进入待机模式。我在Windows中找到了一条名为WM_POWERBROADCAST
的消息,用于此目的,在进入睡眠状态之前发送此消息模式。
对于Linux,C中是否有其他选择?
我听说DBus可以用于同样的目的,有人可以解释一下吗?
答案 0 :(得分:5)
最后我找到了解决方案。
我们可以使用pm实用程序。
如果在/etc/pm/sleep.d文件夹中放置任何shell脚本,它将在系统进入休眠状态之前和系统恢复后自动执行。
内容就像
#!/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程序答案 1 :(得分:2)
AFAIK在Linux中没有这样的信号,但你可以尝试
a)acpid
守护程序钩子,如果它存在,acpid配置通常在/etc/acpi
中
b)DBus daemon hooks,如果它在系统上预先发送的话
c)阅读acpid
来源,看看它是如何得到信号的
d)编写自己的内核模块