123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- #!/usr/bin/env python
- import sys, os, signal, subprocess, shlex,time
- def file_pid(name):
- proc1 = subprocess.Popen(shlex.split('ps aux'), stdout=subprocess.PIPE)
- proc2 = subprocess.Popen(shlex.split('grep ' + name), stdin=proc1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- proc3 = subprocess.Popen(shlex.split('awk \'{print $2}\' '), stdin=proc2.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- proc1.stdout.close()
- proc2.stdout.close()
- out, err = proc3.communicate()
- lines = out.splitlines()
- pids = []
- for line in lines :
- item = line.strip()
- pid = int(item)
- if pid > 0:
- pids.append(pid)
- if len(pids) > 0 :
- return pids
- else:
- return []
- def has_proc(name):
- pids = file_pid(name)
- return len(pids) > 0
- def restart(item):
- name = item['file_name']
- cmd = item['cmd']
- tip = item['tip']
- if name:
- cur_pid = os.getpid()
- pids = file_pid(name)
- print "restart " + name
- for pid in pids:
- try:
- if cur_pid != pid:
- os.kill(pid, signal.SIGKILL)
- print 'kill pid=', pid
- else:
- continue
- except OSError, e:
- print "OSError no=", e.errno, " err=", e.strerror
- pass
- except BaseException, be:
- pass
- if cmd:
- print cmd
- time.sleep(1)
- os.system(cmd)
- if tip:
- print "tip:",tip
- return
- def mac_sys():
- plat_name = sys.platform
- return (plat_name == 'darwin')
- def main():
- print "you can input: fcgi,queue,ugc,center,all to restart server or no input it will restart fcgi,queue"
- if len(sys.argv) == 2:
- option = sys.argv[1]
- else:
- option = ''
- cmds = []
- if mac_sys() :
- if option == 'fcgi':
- cmds.append({'file_name': 'fcgi_run.php','cmd': 'spawn-fcgi -a 127.0.0.1 -p 9100 -F 1 -f "php fcgi_run.php"','tip':''})
- elif option == 'queue':
- cmds.append({'file_name': 'crontab.php','cmd': '','tip':''})
- elif option == 'ugc' :
- cmds.append({'file_name': 'mac_ugcman', 'cmd': 'sudo ./mac_ugcman','tip':''})
- cmds.append({'file_name': 'ugc_srv.php','cmd': 'php ugc_srv.php','tip':"tip: tail -f -n 20 /tmp/ugcman.out"})
- elif option == 'center':
- cmds.append({'file_name': 'centra_srv.php','cmd': 'php centra_srv.php','tip':''})
- elif option == 'room':
- cmds.append({'file_name': 'room_srv.php', 'cmd': 'php room_srv.php','tip':''})
- cmds.append({'file_name': 'mac_webacc', 'cmd': './mac_webacc','tip':'tail -f -n 20 /tmp/webacc.out'})
- elif option == 'factory':
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php', 'tip': ''})
- elif option == 'master':
- cmds.append({'file_name': 'crontab.php', 'cmd': '','tip':''})
- cmds.append({'file_name': 'mac_ugcman', 'cmd': './mac_ugcman','tip':''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php','tip':''})
- cmds.append({'file_name': 'centra_srv.php', 'cmd': 'php centra_srv.php','tip':''})
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php','tip':''})
- elif option == 'slave':
- cmds.append({'file_name': 'fcgi_run.php', 'cmd': 'spawn-fcgi -a 127.0.0.1 -p 9100 -F 1 -f "php fcgi_run.php"','tip': ''})
- cmds.append({'file_name': 'mac_ugcman', 'cmd': './mac_ugcman', 'tip': ''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php', 'tip': ''})
- cmds.append({'file_name': 'centra_srv.php', 'cmd': 'php centra_srv.php', 'tip': ''})
- cmds.append({'file_name': 'room_srv.php', 'cmd': 'php room_srv.php', 'tip': ''})
- cmds.append({'file_name': 'mac_webacc', 'cmd': './mac_webacc','tip': 'tail -f -n 20 /tmp/ugcman.out\n tail -f -n 20 /tmp/webacc.out'})
- elif option == 'all':
- cmds.append({'file_name': 'fcgi_run.php', 'cmd': 'spawn-fcgi -a 127.0.0.1 -p 9100 -F 1 -f "php fcgi_run.php"','tip': ''})
- cmds.append({'file_name': 'crontab.php', 'cmd': '', 'tip': ''})
- cmds.append({'file_name': 'mac_ugcman', 'cmd': './mac_ugcman', 'tip': ''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php', 'tip': ''})
- cmds.append({'file_name': 'centra_srv.php', 'cmd': 'php centra_srv.php', 'tip': ''})
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php', 'tip': ''})
- cmds.append({'file_name': 'room_srv.php', 'cmd': 'php room_srv.php', 'tip': ''})
- cmds.append({'file_name': 'mac_webacc', 'cmd': './mac_webacc','tip': 'tail -f -n 20 /tmp/ugcman.out\n tail -f -n 20 /tmp/webacc.out'})
- else:
- cmds.append({'file_name': 'fcgi_run.php', 'cmd': 'spawn-fcgi -a 127.0.0.1 -p 9100 -F 1 -f "php fcgi_run.php"','tip':''})
- cmds.append({'file_name': 'crontab.php', 'cmd': '','tip':''})
- else :
- if option == 'fcgi':
- cmds.append({'file_name': 'fcgi_run.php', 'cmd': 'spawn-fcgi -a 127.0.0.1 -p 9100 -F 10 -f "php fcgi_run.php"','tip':''})
- elif option == 'queue':
- cmds.append({'file_name': 'crontab.php', 'cmd': '','tip':''})
- elif option == 'ugc':
- cmds.append({'file_name': 'ugcman', 'cmd': './ugcman','tip':''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php','tip':'tail -f -n 20 /tmp/ugcman.out'})
- elif option == 'center':
- cmds.append({'file_name': 'centra_srv.php', 'cmd': 'php centra_srv.php','tip':''})
- elif option == 'room':
- cmds.append({'file_name': 'room_srv.php', 'cmd': 'php room_srv.php','tip':''})
- cmds.append({'file_name': 'webacc', 'cmd': './webacc','tip':'tail -f -n 20 /tmp/webacc.out'})
- elif option == 'factory':
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php', 'tip': ''})
- elif option == 'master':
- cmds.append({'file_name': 'crontab.php', 'cmd': '','tip':''})
- cmds.append({'file_name': 'ugcman', 'cmd': './ugcman','tip':''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php','tip':''})
- cmds.append({'file_name': 'centra_srv.php', 'cmd': 'php centra_srv.php','tip':''})
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php','tip':''})
- elif option == 'slave':
- cmds.append({'file_name': 'fcgi_run.php', 'cmd': 'spawn-fcgi -a 127.0.0.1 -p 9100 -F 10 -f "php fcgi_run.php"','tip': ''})
- cmds.append({'file_name': 'ugcman', 'cmd': './ugcman', 'tip': ''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php', 'tip': ''})
- cmds.append({'file_name': 'centra_srv.php', 'cmd': 'php centra_srv.php', 'tip': ''})
- cmds.append({'file_name': 'room_srv.php', 'cmd': 'php room_srv.php', 'tip': ''})
- cmds.append({'file_name': 'webacc', 'cmd': './webacc','tip': 'tail -f -n 20 /tmp/ugcman.out\ntail -f -n 20 /tmp/webacc.out'})
- elif option == 'all':
- cmds.append({'file_name': 'fcgi_run.php', 'cmd': 'spawn-fcgi -a 127.0.0.1 -p 9100 -F 10 -f "php fcgi_run.php"','tip': ''})
- cmds.append({'file_name': 'crontab.php', 'cmd': '','tip':''})
- cmds.append({'file_name': 'ugcman', 'cmd': './ugcman', 'tip': ''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php', 'tip': ''})
- cmds.append({'file_name': 'centra_srv.php', 'cmd': 'php centra_srv.php', 'tip': ''})
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php','tip':''})
- cmds.append({'file_name': 'room_srv.php', 'cmd': 'php room_srv.php', 'tip': ''})
- cmds.append({'file_name': 'webacc', 'cmd': './webacc','tip': 'tail -f -n 20 /tmp/ugcman.out\ntail -f -n 20 /tmp/webacc.out'})
- else:
- print "you must input some tag: fcgi,queue,ugc,center,room,factory,master,slave,all to restart server or no input it will restart fcgi,queue"
- for item in cmds :
- restart(item)
- sys.exit(2)
- if __name__ == '__main__':
- main()
|