以下步骤概述如何枚举会话和确定它们是否有效或不是:
Bus: org.freedesktop.ConsoleKit
Path: /org/freedesktop/ConsoleKit/Manager
Method: org.freedesktop.ConsoleKit.Manager.GetSessions
什么返回是一个磁盘阵列:
1)使用以下枚举会话的导出Session接口的对象路径。反过来,这些可以使用DBus查询以获得其适当的属性。例如,我使用的dbus-发送与ConsoleKit的沟通,列举在我的系统的会话:
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.GetSessions
而我收到的回报是以下几点:
method return sender=:1.15 -> dest=:1.205 reply_serial=2 array [ object path "/org/freedesktop/ConsoleKit/Session2" ]
2)使用返回的对象路径(S),我可以查询他们的属性,例如,如果它们是活性的或不使用以下:
Bus: org.freedesktop.ConsoleKit
Path: /org/freedesktop/ConsoleKit/Session2
Method: org.freedesktop.ConsoleKit.Session.IsActive
根据不同的方法,我可以从会话中查询我需要的内容!使用ConsoleKit接口,我还可以检索当前会话的标识符,所以我可以随时查询它,以便在需要时查看它是否处于活动状态。只是为了好玩,这里是以下命令的输出:
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Session2 org.freedesktop.ConsoleKit.Session.IsActive
方法的返回发件人= 1.15 - > DEST =:1.206 reply_serial = 2 逻辑真
整洁。