django - variable - Cómo detener gunicorn correctamente
django template variable (4)
Para ver los procesos es ps ax|grep gunicorn
y para detener gunicorn_django es pkill gunicorn
.
Estoy iniciando gunicorn con el comando Django ''python manage.py run_gunicorn''. ¿Cómo puedo dejar de gunicorn?
Nota: Tengo un despliegue de servidor semi-automatizado con tejido. Así usando algo como ps aux | grep gunicorn
ps aux | grep gunicorn
para matar el proceso manualmente por pid no es una opción.
Una opción sería utilizar Supervisor
para administrar Gunicorn.
Por otra parte, no veo por qué no puedes matar el proceso a través de Fabric
. Suponiendo que deje que Gunicorn escriba un archivo pid , podría leer fácilmente ese archivo en un comando Fabric
.
Algo como esto debería funcionar:
run("kill `cat /path/to/your/file/gunicorn.pid`")
pkill gunicorn
detiene todos los demonios gunicorn. Entonces, si está ejecutando múltiples instancias de gunicorn con diferentes puertos, intente este script de shell.
#!/bin/bash
Port=5000
pid=`ps ax | grep gunicorn | grep $Port | awk ''{split($0,a," "); print a[1]}'' | head -n 1`
if [ -z "$pid" ]; then
echo "no gunicorn deamon on port $Port"
else
kill $pid
echo "killed gunicorn deamon on port $Port"
fi
ps ax | grep gunicorn | grep $Port
ps ax | grep gunicorn | grep $Port
muestra los demonios con puerto específico.
kill -9 `ps -eo pid,command | grep ''gunicorn.*${moduleName:appName}'' | grep -v grep | sort | head -1 | awk ''{print $1}''`
ps -eo pid,command
solo recuperará la ID del proceso, el comando y los argumentos.
grep -v grep
para deshacerse de la salida como ''grep --color = auto xxx''
sort | head -1
sort | head -1
para hacer orden ascendente y obtener primera línea.
awk ''{print $1}''
para recuperar pid
Es posible que deba prestar atención a otra cosa: ¿Dónde está instalado gunicorn y cuál está usando?
Ubuntu 16 tiene gunicorn instalado de manera predeterminada, el ejecutable es gunicorn3 y se encuentra en / usr / bin / gunicorn3, y si lo instaló por pip, se encuentra en / usr / local / bin / gunicorn. Necesitarías usar which gunicorn
y gunicorn -v
para averiguarlo.