La secuencia de comandos no se detendrá limpiamente

0

Escribí este pequeño script de shell para iniciar un servidor WSGI gunicorn para mi aplicación django. Lo estoy ejecutando en Ubuntu 12.04, y el script comienza limpiamente y se ejecuta como se supone que debe hacerlo. El problema es que el guión y gunicorn sigue funcionando incluso después ctrl - C, es decir, que no vuelve a la indicación.

¿Por qué sería esto y cómo puedo solucionarlo?

Guión:

#!/bin/bash
NUM_WORKERS=3
cd /path/to/my/project
source ../bin/activate

gunicorn_django -w $NUM_WORKERS
HighLife
fuente
Mismo problema: no se puede terminar gunicorn_django a través de Ctrl-C cuando se invoca desde un archivo MAKE . Mi suposición: Anular en Ctrl-C es completamente opcional. Dado que el comportamiento es inconsistente, probablemente sea un error.
Dennis
Duplicado de stackoverflow.com/q/7959977/114147 . Intente realizar una búsqueda la próxima vez :-)
invierta
@wez Esa realmente no es una buena solución para esta pregunta. Lo he enviado al github de gunicorn y han enviado una corrección de errores. Lo probaré pronto y veré si soluciona algo.
HighLife

Respuestas:

0

La forma normal de iniciar los procesos del servidor es hacer que se ejecuten en segundo plano. P.ej

gunicorn_django -w $NUM_WORKERS &

La forma habitual de detener los servidores es enviarles una señal, a menudo el proceso del servidor o el script que lo inicia, guarda su ID de proceso en un archivo para que su script de detención pueda hacer algo como

kill pid

Ver ejemplos típicos en /etc/initd.dscripts.

RedGrittyBrick
fuente
También intenté iniciar / detener este script con el inicio. gunicorn_django tampoco se detendrá limpiamente allí.
HighLife
killall gunicorn?
RedGrittyBrick
0

Aquí está la corrección de errores. Después de hacer una instalación limpia con esa rama, parece funcionar bien.

HighLife
fuente