Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import sys
- import signal
- from subprocess import DEVNULL, PIPE, Popen
- from functools import partial
- signal_value = int(sys.argv[1])
- signal_value = signal.Signals(signal_value)
- print("Using signal", signal_value)
- cmd = ["python", "guard.py", signal_value.name]
- make_proc = partial(Popen, cmd)
- options = dict(stdout=DEVNULL, stderr=DEVNULL)
- start = time.monotonic()
- procs = [make_proc(**options) for _ in range(4)]
- print("Waiting to finish")
- returncodes = set()
- for proc in procs:
- returncodes.add(proc.wait())
- if len(returncodes) == 1 and returncodes.pop() == signal_value:
- print("All return codes are", signal_value)
- else:
- print("Something went wrong.")
- print("Got following return codes", returncodes)
- end = time.monotonic()
- print(f"Starting, sending signal, waiting to finish took {end-start:.2f} seconds.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement