diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-08-11 23:29:55 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-08-11 23:29:55 (GMT) |
commit | fc1aefc72c35b830ae36e5f29fce31947eb70dd7 (patch) | |
tree | 3752aee2f4534d2ff31188d6cd0f12e2ae61b53b /shell | |
parent | c5fb39875c9a6609868ef7295193840df183a6f4 (diff) |
Use dbus-launch with the --exit-with-session. dbus not exiting still not fully solved.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/PresenceService/PresenceService.py | 9 | ||||
-rw-r--r-- | shell/session/Session.py | 8 | ||||
-rwxr-xr-x | shell/sugar-presence-service | 8 |
3 files changed, 12 insertions, 13 deletions
diff --git a/shell/PresenceService/PresenceService.py b/shell/PresenceService/PresenceService.py index e1851ab..997340a 100644 --- a/shell/PresenceService/PresenceService.py +++ b/shell/PresenceService/PresenceService.py @@ -212,7 +212,7 @@ class PresenceServiceDBusHelper(dbus.service.Object): in_signature="o", out_signature="") def unregisterService(self, service_op): found_serv = None - serv = self._parent.get_services() + services = self._parent.get_services() for serv in services: if serv.object_path() == service_op: found_serv = serv @@ -688,12 +688,13 @@ class PresenceService(object): if stype in self._registered_service_types: self._registered_service_types.remove(stype) - - def main(): loop = gobject.MainLoop() ps = PresenceService() - loop.run() + try: + loop.run() + except KeyboardInterrupt: + print 'Ctrl+C pressed, exiting...' if __name__ == "__main__": main() diff --git a/shell/session/Session.py b/shell/session/Session.py index 8131c1d..aac6576 100644 --- a/shell/session/Session.py +++ b/shell/session/Session.py @@ -2,6 +2,8 @@ import os import gtk import gobject import time +import re + import dbus import dbus.dbus_bindings @@ -13,7 +15,7 @@ import sugar.env class DbusProcess(Process): def __init__(self): config = sugar.env.get_dbus_config() - cmd = "dbus-daemon --print-address --config-file %s" % config + cmd = "dbus-launch --exit-with-session --config-file %s" % config Process.__init__(self, cmd) def get_name(self): @@ -22,8 +24,8 @@ class DbusProcess(Process): def start(self): Process.start(self, True) dbus_file = os.fdopen(self._stdout) - addr = dbus_file.readline() - addr = addr.strip() + regexp = re.compile('DBUS_SESSION_BUS_ADDRESS=\'(.*)\'\;') + addr = regexp.match(dbus_file.readline()).group(1) dbus_file.close() os.environ["DBUS_SESSION_BUS_ADDRESS"] = addr diff --git a/shell/sugar-presence-service b/shell/sugar-presence-service index 4b939c4..fda0d12 100755 --- a/shell/sugar-presence-service +++ b/shell/sugar-presence-service @@ -1,14 +1,10 @@ #!/usr/bin/python import logging -import sugar.env from PresenceService import PresenceService +import sugar.logger -# FIXME this looks like duplicated -level = sugar.env.get_logging_level() -if level == 'debug': - logging.basicConfig(level=logging.DEBUG, - format='%(levelname)s %(message)s') +sugar.logger.start('PresenceService') logging.info('Starting presence service') |