tools/scripts/server/monitor.py
aozhiwei 43a09bd136 1
2019-12-16 16:03:17 +08:00

36 lines
872 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])