gunicorn+flask+centos启动flask脚本

#启动指定端口数量的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()

 

posted @ 2020-09-04 16:44  尼姑哪里跑  阅读(260)  评论(0编辑  收藏  举报