📄 asterstart.py
字号:
#!/bin/env python## Copyright (C) 2006 Earl Terwilliger# EMAIL: earl@micpc.com## Version 1.2 11-22-2006import sys,os,string,timedef get_processes(): output = [] ps = os.popen('ps -eo pid,command') ps.readline() for line in ps: parts = line.lstrip()[:-1].split(' ') output.append( (int(parts[0]), ' '.join(parts[1:])) ) return outputdef find_cmd(cmd): parts = cmd.split('/') l = len(parts) if (l > 0): cp = parts[l-1].split(' ') else : cp = cmd.split(' ') return cp[0]def check_process(cmd): cnt = 0 ids = get_processes() rcmd = find_cmd(cmd) for i in range(len(ids)): ps = find_cmd(ids[i][1]) if ps == rcmd: cnt += 1 return cntdef kill_process(cmd): ids = get_processes() rcmd = find_cmd(cmd) for i in range(len(ids)): ps = find_cmd(ids[i][1]) if ps == rcmd: killcmd = "kill -9 " + str(ids[i][0]) print killcmd os.system(killcmd)def start_process(cmd,parms): if os.path.isfile(cmd): cnt = check_process(cmd) if cnt == 0: os.system(cmd + parms) print "Started: ",cmd,parmsif __name__ == '__main__': cnt = check_process(sys.argv[0]) if (cnt > 1): print "Exiting.. already running!" sys.exit(0) pid = os.fork() if pid: sys.exit(0) while(1): cnt = check_process('/usr/sbin/asterisk') if cnt == 0: kill_process('/opt/asterisk/scripts/events/ProxyMan.py') start_process('/usr/sbin/asterisk',' -p') time.sleep(1) start_process('/opt/asterisk/scripts/events/ProxyMan.py','') time.sleep(10)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -