在Gnome中,dbus-monitor上的什么信号表示用户正在注销?

时间:2013-01-14 16:41:01

标签: gnome dbus

我想编写一个在后台运行的脚本,并检测用户何时注销。我无法在dbus-monitor上找到文档。我能做的最好的事情就是我发现了一阵EndSessionQueryEndSessionEndSessionResponse,但这些都带有布尔值,所以它们不能完全被信任(可能一个程序说它不希望用户注销?)并且最重要的是,如果没有程序打开怎么办?这太不可靠了。

我想要的是听取用户注销时总会发生的信号。有人可以提供这个信号吗?目前我正在运行此命令:

dbus-monitor --session \
    "type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'" | \
        myprog

捕获ScreenSaver事件。但我也想赶上注销。我希望的是:

dbus-monitor --session \
    "type='signal',interface='org.gnome.Session',member='LogoutSuccess'" \
    "type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'" | \
        myprog

2 个答案:

答案 0 :(得分:4)

查找名为org.gnome.SessionManager的文件。*此处:http://git.gnome.org/browse/gnome-session/tree/gnome-session

接口org.gnome.SessionManager中有一个SessionOver信号,可能就是你需要的信号。

您是否正在寻找正常的“会话结束,退出自己或提出提示或某事”来自会话管理员的请求,或“会话现在真的结束,再见”信号?

答案 1 :(得分:1)

这是一个旧线程,但我正在添加一些信息以防其他人需要它。

我有相同的需求,但最终实现了一个Session Manager DBus客户端作为一个易于使用的脚本。它在注销时执行用户定义的脚本。准备使用的应用程序在GitHub上共享。

Gnome EndSession DBus client