下面代碼實現了一個軟件狗,被監控的程序做爲狗的子程序存在,程序名稱用參數傳入,程序退出後會自動啓動。
#!/usr/bin/python
import subprocess
import sys
import time
def restartproc():
p = subprocess.Popen([sys.argv[1]], shell=False, stdout=False)
while 1:
time.sleep(1)
ret = subprocess.Popen.poll(p)
if ret is None:
print "Process_id = ", p.pid;
else:
print "Process termined!";
p = subprocess.Popen([sys.argv[1]], shell=False, stdout=False)
if __name__ == "__main__":
restartproc();
Python 2.7環境下運行。