def _runner(*args, **kwargs): for pid in get_pids(pid_dir): os.kill(pid, 9) p = Process(target=start_server) p.start() time.sleep(1) # give a moment to startup try: func() finally: for pid in get_pids(pid_dir): os.kill(pid, 15) p.join()
def start(**kwargs): m = MetriqueHTTP(debug=True, **kwargs) pid = m.start(fork=True) if pid == 0: sys.exit() else: time.sleep(1) pids = get_pids(pid_dir) try: assert pid in pids finally: os.kill(pid, 9) # insta-kill