/usr/bin/datastore-service is in python-carquinyol-0.90 0.90.0-1build1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #!/usr/bin/env python
import sys, os, signal, logging
import gobject
import dbus.service
import dbus.mainloop.glib
import dbus.glib
from carquinyol.datastore import DataStore
from sugar import logger
# Path handling
profile = os.environ.get('SUGAR_PROFILE', 'default')
base_dir = os.path.join(os.path.expanduser('~'), '.sugar', profile)
log_dir = os.path.join(base_dir, "logs")
if not os.path.exists(log_dir): os.makedirs(log_dir)
# setup logger
logger.start('datastore')
# build the datastore
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
connected = True
ds = DataStore()
# and run it
mainloop = gobject.MainLoop()
def handle_disconnect():
global mainloop
mainloop.quit()
logging.debug("Datastore disconnected from the bus.")
def handle_shutdown(signum, frame):
global mainloop
mainloop.quit()
raise SystemExit("Shutting down on signal %s" % signum)
bus.set_exit_on_disconnect(False)
bus.add_signal_receiver(handle_disconnect,
signal_name='Disconnected',
dbus_interface='org.freedesktop.DBus.Local')
signal.signal(signal.SIGHUP, handle_shutdown)
signal.signal(signal.SIGTERM, handle_shutdown)
def main():
try:
mainloop.run()
except KeyboardInterrupt:
logging.info("DataStore shutdown by user")
except:
logging.error("Datastore shutdown with error", exc_info=sys.exc_info())
main()
ds.stop()
|