variable template examples python django logging crash lighttpd

python - examples - django template variable



¿Por qué iba a morir Django fcgi? ¿Cómo puedo averiguarlo? (3)

Puede editar manage.py para redirigir stderr a un archivo, suponiendo que runfcgi no lo haga por sí mismo:

import sys if sys.argv[1] == "runfcgi": sys.stderr = open("/path/to/my/django-error.log", "a")

Estoy ejecutando Django en Linux usando fcgi y Lighttpd. De vez en cuando (una vez al día) el servidor simplemente muere. Estoy usando la última versión estable de Django, Python y Lighttpd.

Lo único que puedo pensar es que mi programa está abriendo una gran cantidad de archivos y ejecutando muchos procesos externos, pero estoy bastante seguro de que ese lado de las cosas es hermético.

Al observar el error y acceder a los registros, no ocurre nada excepcional (es decir, la carga no es superior a lo normal). En esas ocasiones en las que he tenido excepciones de Python, estas han aparecido en el error.log, pero cuando ocurre este bloqueo no obtengo nada.

¿Hay alguna forma de descubrir por qué murió el proceso? ¿Demasiado para poner declaraciones de registro en cada línea? Obviamente no puedo reproducir esto, así que no sé exactamente dónde mirar.

Editar

Es el proceso django el que está muriendo. Estoy ejecutando el servidor con manage.py runfcgi daemonize=true method=threaded host=127.0.0.1 port=12345


¿Está esto en tu servidor? (¿Eres el propietario de la caja?). Tuve ese problema en el alojamiento compartido, y el host solo estaba matando procesos largos. ¿Sabes si tu fcgi está recibiendo un SIGTERM?


Han tenido los mismos problemas No solo mueren sin previo aviso o la razón por la que se filtran como locos también con los hilos atascados sin un proceso maestro. Solucionamos este problema haciendo que cronjob se ejecute cada 5 minutos, que comprueba si el número de puerto está funcionando y si no se reinicia.

Por cierto, ahora (migrando lentamente) renunciamos a fcgi y nos trasladamos a uwsgi.