X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/eabe5d6c3b31360a33621284f2dcc98e9d03b81d..c0f595e3e7fd72c3d9352805481ff4d7bf526206:/tools/actions/container_manager.py diff --git a/tools/actions/container_manager.py b/tools/actions/container_manager.py index cbd6298..7321c14 100644 --- a/tools/actions/container_manager.py +++ b/tools/actions/container_manager.py @@ -26,9 +26,9 @@ class DbusContainerManager(dbus.service.Object): def Start(self, session): do_start(self.args, session) - @dbus.service.method("id.waydro.ContainerManager", in_signature='', out_signature='') - def Stop(self): - stop(self.args) + @dbus.service.method("id.waydro.ContainerManager", in_signature='b', out_signature='') + def Stop(self, quit_session): + stop(self.args, quit_session) @dbus.service.method("id.waydro.ContainerManager", in_signature='', out_signature='') def Freeze(self): @@ -128,7 +128,7 @@ def do_start(args, session): # Networking command = [tools.config.tools_src + "/data/scripts/waydroid-net.sh", "start"] - tools.helpers.run.user(args, command, check=False) + tools.helpers.run.user(args, command) # Sensors if which("waydroid-sensord"): @@ -166,7 +166,7 @@ def do_start(args, session): args.session = session -def stop(args): +def stop(args, quit_session=True): try: services.hardware_manager.stop(args) status = helpers.lxc.status(args) @@ -200,10 +200,11 @@ def stop(args): helpers.mount.umount_all(args, tools.config.defaults["data"]) if "session" in args: - try: - os.kill(int(args.session["pid"]), signal.SIGUSR1) - except: - pass + if quit_session: + try: + os.kill(int(args.session["pid"]), signal.SIGUSR1) + except: + pass del args.session except: pass