X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/523fd4d21655361439ffe6f1f57417ceec6f1290..9447b7cfccfb6bbd930cff4a4a15206233d2257c:/tools/actions/container_manager.py diff --git a/tools/actions/container_manager.py b/tools/actions/container_manager.py index f4ad128..7362899 100644 --- a/tools/actions/container_manager.py +++ b/tools/actions/container_manager.py @@ -70,10 +70,6 @@ def start(args): # Graphics "/dev/dri", "/dev/graphics", - - # Wayland and pulse socket permissions - session_cfg["session"]["pulse_runtime_path"], - session_cfg["session"]["xdg_runtime_dir"] ] # Framebuffers @@ -151,10 +147,18 @@ def start(args): helpers.lxc.start(args) session_cfg["session"]["state"] = helpers.lxc.status(args) + timeout = 10 + while session_cfg["session"]["state"] != "RUNNING" and timeout > 0: + session_cfg["session"]["state"] = helpers.lxc.status(args) + logging.info( + "waiting {} seconds for container to start...".format(timeout)) + timeout = timeout - 1 + time.sleep(1) + if session_cfg["session"]["state"] != "RUNNING": + raise OSError("container failed to start") tools.config.save_session(session_cfg) - if not hasattr(args, 'hardwareLoop'): - services.hardware_manager.start(args) + services.hardware_manager.start(args) signal.signal(signal.SIGINT, signal_handler) while os.path.exists(tools.config.session_defaults["config_path"]): @@ -170,6 +174,7 @@ def start(args): logging.warning("session manager stopped, stopping container and waiting...") stop(args) + services.hardware_manager.stop(args) start(args) else: logging.error("WayDroid container is {}".format(status)) @@ -204,6 +209,14 @@ def stop(args): else: logging.error("WayDroid container is {}".format(status)) +def restart(args): + status = helpers.lxc.status(args) + if status == "RUNNING": + helpers.lxc.stop(args) + helpers.lxc.start(args) + else: + logging.error("WayDroid container is {}".format(status)) + def freeze(args): status = helpers.lxc.status(args) if status == "RUNNING":