[PYTHON] Betreiben Sie Gunicorn über Fabric

Aktiviert, um die Anwendung zu starten und neu zu starten, die auf Gunicorn auf der Serverseite ausgeführt wird. Ich habe gelernt, dass Sie töten können, indem Sie die PID angeben, um den Prozess zu stoppen.

gunicorn.conf.py

usr/bin/python
gunicorn.conf.py

bind = "0.0.0.0:5000"
workers = 2
worker_class = 'sync'
max_requests = 1000
timeout = 30
keep_alive = 2
preload = True
daemon = True

start.sh

GUNICORN=/usr/bin/gunicorn
ROOT=/your/app/path
PID=/var/run/gunicorn/your.pid
APP=run:app

if [ -f $PID ]; then rm $PID; fi
    cd $ROOT
    source venv/bin/activate
    exec $GUNICORN -c $ROOT/gunicorn.conf.py –pid=$PID $APP

fabfile.py

#coding: utf-8
from fabric.api import run,env,local,settings
from fabric.operations import sudo
from fabric.context_managers import cd
import os
import subprocess

from fabric.api import env, run
env.use_ssh_config = True
env.hosts = ["your ip address"]
env.key_filename = "/root/.ssh/authorized_keys"
env.user = "username"
env.password = "password"


def start():
    with settings():
        with cd("/your/path"):
            sudo("""
            source start.sh
            """,pty=False)

def stop():
    with settings():
        pid = get_pid()
        sudo("kill {}".format(pid))

def restart():
    try:
        stop()
    except:
        print("There isn't pid")
    start()

Jetzt können Sie mit fab start / stop / restart frei neu starten.

Memo

Dieser Artikel ist http://furodrive.com/de/2014/2/stop_and_start_gunicorn Es wurde basierend auf erstellt.

Recommended Posts

Betreiben Sie Gunicorn über Fabric
Ich konnte Gunicorn mit Fabric nicht zu einem Dämon machen
Stoff