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

Rob*_*tin 5 gnome dbus

我想编写一个在后台运行并检测用户何时注销的脚本。我在 dbus-monitor 上找不到文档。我能做的最好的事情就是我看到一连串的EndSessionQuery, EndSession,EndSessionResponse但是这些都带有布尔值,因此不能完全信任它们(也许程序说它不希望用户注销?) ,如果没有程序打开怎么办?这太不靠谱了。

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

dbus-monitor --session \
    "type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'" | \
        myprog
Run Code Online (Sandbox Code Playgroud)

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

dbus-monitor --session \
    "type='signal',interface='org.gnome.Session',member='LogoutSuccess'" \
    "type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'" | \
        myprog
Run Code Online (Sandbox Code Playgroud)

Fed*_*ero 4

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

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

您是否正在寻找来自会话管理器的正常“会话即将结束,退出或提出提示或其他内容”请求,或者“会话现在真的结束了,再见”信号?

  • 事实上,我错了。“这确实发生了”信号是来自 org.gnome.SessionManager.ClientPrivate 的“Stop” - 请参阅 gnome-session/gnome-session/gsm-dbus-client.c:dbus_client_stop()。 (3认同)