From 6d1b8d0c4ea34e06bfdbacf5a6321aa13c2dfb2c Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 17 Sep 2021 18:59:40 +0300 Subject: drop unused daemon.py Sponsored-by: author --- subplot/daemon.py | 84 ------------------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 subplot/daemon.py (limited to 'subplot') diff --git a/subplot/daemon.py b/subplot/daemon.py deleted file mode 100644 index 0173731..0000000 --- a/subplot/daemon.py +++ /dev/null @@ -1,84 +0,0 @@ -############################################################################# -# Start and stop daemons, or background processes. - - -import logging -import os -import signal -import time - - -# Start a process in the background. -def start_daemon(ctx, name, argv): - runcmd = globals()["runcmd"] - exit_code_is = globals()["exit_code_is"] - - logging.debug(f"Starting daemon {name}") - logging.debug(f" ctx={ctx.as_dict()}") - logging.debug(f" name={name}") - logging.debug(f" argv={argv}") - - if "daemon" not in ctx.as_dict(): - ctx["daemon"] = {} - assert name not in ctx["daemon"] - this = ctx["daemon"][name] = { - "pid-file": f"{name}.pid", - "stderr": f"{name}.stderr", - "stdout": f"{name}.stdout", - } - runcmd( - ctx, - [ - "/usr/bin/daemonize", # sbin prior to Debian 11 (bullseye), bin now - "-c", - os.getcwd(), - "-p", - this["pid-file"], - "-e", - this["stderr"], - "-o", - this["stdout"], - ] - + argv, - ) - - # Wait for a bit for daemon to start and maybe find a problem and die. - time.sleep(3) - if ctx["exit"] != 0: - logging.error(f"obnam-server stderr: {ctx['stderr']}") - - exit_code_is(ctx, 0) - this["pid"] = int(open(this["pid-file"]).read().strip()) - assert process_exists(this["pid"]) - - logging.debug(f"Started daemon {name}") - logging.debug(f" ctx={ctx.as_dict()}") - - -# Stop a daemon. -def stop_daemon(ctx, name): - logging.debug(f"Stopping daemon {name}") - logging.debug(f" ctx={ctx.as_dict()}") - logging.debug(f" ctx['daemon']={ctx.as_dict()['daemon']}") - - this = ctx["daemon"][name] - terminate_process(this["pid"], signal.SIGKILL) - - -# Does a process exist? -def process_exists(pid): - try: - os.kill(pid, 0) - except ProcessLookupError: - return False - return True - - -# Terminate process. -def terminate_process(pid, signalno): - logging.debug(f"Terminating process {pid} with signal {signalno}") - try: - os.kill(pid, signalno) - except ProcessLookupError: - logging.debug("Process did not actually exist (anymore?)") - pass -- cgit v1.2.1