]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/actions/session_manager.py
Ensure default umask to avoid surprises with file permissions.
[waydroid.git] / tools / actions / session_manager.py
index c1d4271140a220c45169f23fcc64944c66466715..d2daf7aeed6e8e14daf7c72c26d3db2280ec63d1 100644 (file)
@@ -24,13 +24,13 @@ class DbusSessionManager(dbus.service.Object):
     @dbus.service.method("id.waydro.SessionManager", in_signature='', out_signature='')
     def Stop(self):
         do_stop(self.args, self.looper)
-        stop_container()
+        stop_container(quit_session=False)
 
 def service(args, looper):
     dbus_obj = DbusSessionManager(looper, dbus.SessionBus(), '/SessionManager', args)
     looper.run()
 
-def start(args, unlocked_cb=None):
+def start(args, unlocked_cb=None, background=True):
     try:
         name = dbus.service.BusName("id.waydro.Session", dbus.SessionBus(), do_not_queue=True)
     except dbus.exceptions.NameExistsException:
@@ -72,11 +72,13 @@ def start(args, unlocked_cb=None):
             dpi = "0"
     session["lcd_density"] = dpi
 
+    session["background_start"] = "true" if background else "false"
+
     mainloop = GLib.MainLoop()
 
     def sigint_handler(data):
         do_stop(args, mainloop)
-        stop_container()
+        stop_container(quit_session=False)
 
     def sigusr_handler(data):
         do_stop(args, mainloop)
@@ -87,6 +89,7 @@ def start(args, unlocked_cb=None):
     try:
         tools.helpers.ipc.DBusContainerService().Start(session)
     except dbus.DBusException as e:
+        logging.debug(e)
         if e.get_dbus_name().startswith("org.freedesktop.DBus.Python"):
             logging.error(e.get_dbus_message().splitlines()[-1])
         else:
@@ -106,10 +109,10 @@ def stop(args):
     try:
         tools.helpers.ipc.DBusSessionService().Stop()
     except dbus.DBusException:
-        stop_container()
+        stop_container(quit_session=True)
 
-def stop_container():
+def stop_container(quit_session):
     try:
-        tools.helpers.ipc.DBusContainerService().Stop()
+        tools.helpers.ipc.DBusContainerService().Stop(quit_session)
     except dbus.DBusException:
         pass