#!/usr/bin/env python
import sys
import time
import subprocess
"""
Keep a process up and running
If you have a long running process that can be killed for strange and unknown
reason, you might want it to be restarted ... this script does that.
$ cat alive.sh
#!/bin/sh
while `true`; do echo Alive && sleep 3 ; done
Use it like this:
$ keepup.py ./alive.sh
"""
cmd = ' '.join(sys.argv[1:])
def start_subprocess():
return subprocess.Popen(cmd, shell=True)
p = start_subprocess()
while True:
res = p.poll()
if res is not None:
print p.pid, 'was killed, restarting it'
p = start_subprocess()
time.sleep(1)