#启动指定端口数量的screen,并运行flask程序
import commands
import os
ip="10.1.1.96"
gunicorn_port_list=[5000,5001,5002]
def get_screen_id_list():
result,content=commands.getstatusoutput('screen -ls|grep gunicorn')
content=content.replace('.gunicorn\t(Detached)','')
content=content.replace('\t','')
content=content.replace('\n',',')
ls=content.split(',')
return ls
def create_screen():
for i in range(len(gunicorn_port_list)):
#创建n个screen程序
os.system("screen -dmS gunicorn")
def send_commands():
current_screen_list=get_screen_id_list()
for port,screen_id in zip(gunicorn_port_list,current_screen_list):
os.system("screen -x -S {0} -p 0 -X stuff $'cd /var/wsdd'".format(screen_id))
os.system("sleep 1")
os.system("screen -x -S {0} -p 0 -X stuff $'\n'".format(screen_id))
os.system("sleep 1")
os.system("screen -x -S {0} -p 0 -X stuff $'gunicorn -w 4 -b {1}:{2} manage:app –preload'".format(screen_id,ip,port))
os.system("sleep 1")
os.system("screen -x -S {0} -p 0 -X stuff $'\n'".format(screen_id))
def kill_all_screen():
screen_ls=get_screen_id_list()
for item in screen_ls:
os.system("sleep 1")
os.system("screen -X -S {0} quit".format(item))
os.system("sleep 1")
os.system("screen -wipe")
os.system("sleep 1")
os.system("killall gunicorn")
if __name__ == '__main__':
kill_all_screen()
create_screen()
send_commands()