123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- #!/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=' + str(pid))
- else:
- continue
- except OSError as e:
- print("OSError no=" + str(e.errno) + " err=" + e.strerror)
- pass
- except BaseException as 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 --log 6', 'tip': ''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php', 'tip': ""})
- 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': ''})
- elif option == 'factory':
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php', 'tip': ''})
- elif option == 'master':
- 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 --log 6', '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 --log 6', '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 --log 6', 'tip': ''})
- 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 --log 6', '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 --log 6', 'tip': ''})
- 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 --log 6', 'tip': ''})
- cmds.append({'file_name': 'ugc_srv.php', 'cmd': 'php ugc_srv.php', 'tip': ''})
- 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 --log 6', 'tip': ''})
- elif option == 'factory':
- cmds.append({'file_name': 'room_factory.php', 'cmd': 'php room_factory.php', 'tip': ''})
- elif option == 'master':
- 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 --log 6', '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 --log 6', '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 --log 6', 'tip': ''})
- 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 --log 6', '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 --log 6', 'tip': ''})
- 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()
|