|
import subprocess |
|
import time |
|
|
|
RESTART_DELAY = 5 |
|
|
|
|
|
commands = [ |
|
["python", "-m", "DragMusic"], |
|
["python", "server.py"] |
|
] |
|
|
|
processes = [None, None] |
|
|
|
while True: |
|
|
|
for i, cmd in enumerate(commands): |
|
if processes[i] is None or processes[i].poll() is not None: |
|
print(f"[Watchdog] Starting: {' '.join(cmd)}") |
|
processes[i] = subprocess.Popen(cmd) |
|
time.sleep(1) |
|
|
|
time.sleep(1) |
|
for i, proc in enumerate(processes): |
|
if proc.poll() is not None: |
|
print(f"[Watchdog] Process {' '.join(commands[i])} exited. Restarting in {RESTART_DELAY} seconds...") |
|
time.sleep(RESTART_DELAY) |
|
processes[i] = None |