我试图通过“cc>”从节律框中提取信息,但我只想这样做,如果节奏框正在运行。有没有一种方法来检查节奏框是通过Python运行的,而不是在没有运行的情况下启动它?
每当我像这样调用dbus代码时:

bus = dbus.Bus()
obj = bus.get_object("org.gnome.Rhythmbox", "/org/gnome/Rhythmbox/Shell")
iface = dbus.Interface(obj, "org.gnome.Rhythmbox.Shell)

节奏盒子没有运行,然后启动它。
如果CalrimMox在没有启动的情况下运行,我可以通过cc>检查吗?或者,除了解析当前运行的进程的列表之外,还有其他方法吗?

最佳答案

这与Rosh矛盾修饰法的答案相似,但可以说更简洁(尽管未经测试):

bus = dbus.SessionBus()
if bus.name_has_owner('org.gnome.Rhythmbox'):
    # ...

如果您希望在Rhylthmbox开始或停止时收到通知,可以使用:
def rhythmbox_owner_changed(new_owner):
    if new_owner == '':
        print 'Rhythmbox is no longer running'
    else:
        print 'Rhythmbox is now running'

bus.watch_name_owner('org.gnome.Rhythmbox')

有关详细信息,请参见documentation for dbus.bus.BusConnection

07-26 00:28