36 lines
871 B
Python
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])
|