当系统从挂起状态恢复时,我想通过 dbus 获得通知。在这些现有问题之后:
但是,当我暂停或恢复时,以上链接中的示例都没有触发。 dbus-monitor也看不到任何东西:
dbus-monitor --system "type='signal',interface='org.freedesktop.UPower'"
我还尝试使用此代码手动触发信号(更容易):
#taken from /usr/lib/systemd/system/upower.service
dbus-send --system --type=signal --dest=org.freedesktop.UPower \
/org/freedesktop/UPower org.freedesktop.UPower.Resuming
结果相同。我一定错过了一些非常明显的东西。Fedora 20 x86_64。(dbus 已安装、运行和工作正常 AFAICT)Fedora 20 使用logind,但我在那里看不到任何“恢复”信号。挂起和恢复很难用 VirtualBox 测试,所以我无法与其他操作系统进行比较。
有趣的是,qdbus 看到了很多服务(org.gnome.SessionManager 等),但与电源无关,但话又说回来,它也没有看到 login1..
qdbus | grep -i power | wc -l
0
根据upower 使用的devkit邮件列表上对同一问题的回答,较新的版本不再发出该信号,因为这是由 systemd 处理的。
systemd-land 中的替换是logind,它有一个名为PrepareForSleep的信号: “PrepareForShutdown() 和 PrepareForSleep() 信号在系统停机之前(参数为 True)和之后(参数为 False)发送重新启动/关机,分别暂停/休眠。”
这是一个简单的 python 脚本,用于观察挂起/恢复事件:
上面的回答对我帮助很大!但如果有人需要 Qt 版本...