tools/scripts/server/monitor.py
aozhiwei 8056b37ae1 1
2019-12-16 15:22:34 +08:00

36 lines
871 B
Python

# -*- coding: utf-8 -*-
import os
import sys
import time
def getRuningProgramPids(progname):
pids = []
lines = os.popen('ps -ef | grep %s' % progname).readlines()
for l in lines:
line = ''
oldc = ''
for c in l.strip():
if c in [' ', '\t'] and c == oldc:
continue
oldc = c
line += c
line = line.split(' ')
if line[7] == './%s' % progname:
pids.append(line[1])
return pids
def monitor_app(exename, args):
exename = exename.strip();
if exename== '':
return
args = args.strip()
while True:
pids = getRuningProgramPids(f'{exename}')
if len(pids) <= 0:
print('zzzz')
os.popen(f'nohup ./{exename} {args} >> {exename}.out 2>&1 &')
time.sleep(2)
monitor_app(sys.argv[1], sys.argv[2])