def _is_service_active_dbus(system_bus, service_name): systemd = system_bus.get_object("org.freedesktop.systemd1", "/org/freedesktop/systemd1") try: unit_path = systemd.GetUnit("%s.service" % service_name, dbus_interface="org.freedesktop.systemd1.Manager") except dbus.exceptions.DBusException: return False optimus_manager_interface = system_bus.get_object("org.freedesktop.systemd1", unit_path) properties_manager = dbus.Interface(optimus_manager_interface, 'org.freedesktop.DBus.Properties') state = properties_manager.Get("org.freedesktop.systemd1.Unit", "SubState") return state == "running"