X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/1f0393876d891d0e32a995d0bf7259cc6505afdc..dc86cbca559aa6795bdfbdea696f8d6aa94af2fa:/tools/actions/container_manager.py diff --git a/tools/actions/container_manager.py b/tools/actions/container_manager.py index 994dcea..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 @@ -126,7 +122,7 @@ def start(args): # Sensors tools.helpers.run.root( - args, ["waydroid-sensord", args.HWBINDER_DRIVER], output="background") + args, ["waydroid-sensord", "/dev/" + args.HWBINDER_DRIVER], output="background") # Mount rootfs helpers.images.mount_rootfs(args, cfg["waydroid"]["images_path"]) @@ -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)) @@ -198,12 +203,20 @@ def stop(args): command = ["pidof", "waydroid-sensord"] pid = tools.helpers.run.root(args, command, check=False, output_return=True) if pid: - command = ["killall", pid] + command = ["kill", "-9", pid] tools.helpers.run.root(args, command, check=False) 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":