def test_exit_kills_manager(self) -> None: systemd = self.make_temporary_systemd_user_service_manager() process_id = systemd.process_id systemd.exit() self.assertFalse(systemd.is_alive()) proc_utils = proc_utils_mod.new() self.assertFalse(proc_utils.is_process_alive(process_id))
def check_in_progress_checkout(tracker: ProblemTracker, checkout: EdenCheckout) -> None: try: checkout.get_snapshot() except InProgressCheckoutError as ex: if proc_utils.new().is_edenfs_process(ex.pid): return tracker.add_problem(PreviousEdenFSCrashedDuringCheckout(checkout, ex))
def test_stop_stops_running_daemon(self) -> None: proc_utils = proc_utils_mod.new() with self.spawn_fake_edenfs(self.eden_dir) as daemon_pid: stop_process = self.spawn_stop(["--timeout", "5"]) stop_process.expect_exact("edenfs exited cleanly.") self.assert_process_exit_code(stop_process, SHUTDOWN_EXIT_CODE_NORMAL) self.assertFalse( proc_utils.is_process_alive(daemon_pid), f"Process {daemon_pid} should have died", )
def __init__( self, instance: EdenInstance, tracker: ProblemTracker, mount_table: Optional[mtab.MountTable] = None, fs_util: Optional[filesystem.FsUtil] = None, proc_utils: Optional[proc_utils_mod.ProcUtils] = None, out: Optional[ui.Output] = None, ) -> None: self.instance = instance self.tracker = tracker self.mount_table = mount_table if mount_table is not None else mtab.new() self.fs_util = fs_util if fs_util is not None else filesystem.LinuxFsUtil() self.proc_utils = proc_utils if proc_utils is not None else proc_utils_mod.new() self.out = out if out is not None else ui.get_output()