¿Cómo se envía la salida de un script inicial a un terminal para encontrar trazas en el código de Python? Me está tomando para siempre hacer cosas sin trazas que solían tomar solo un segundo. Tengo que hacer varias llamadas de escritura de archivos para localizar errores. Lo que tardó en encontrar antes con un rastreo es convertirlo en varios minutos minutos. Esto es miserable Esto ha estado sucediendo durante algunas semanas y estoy harto de eso. algunos hablarían sobre esto por favor. Siento que estoy usando el ensamblaje sin un depurador nuevamente.
16
/var/log/upstart
. Realmente útil, gracias.Hay una sección completa sobre técnicas de depuración en el libro de cocina de Upstart . Lo más fácil que puede hacer es agregar
--debug
a los argumentos de su núcleo, lo que aumentará la verbosidad del advenedizo y volcará todo a syslog. Sí, la depuración es compleja, es un reflejo de la complejidad neta requerida para crear un sistema de inicio paralelo. Estoy seguro de que hay margen de mejora.fuente
Cuando escribo un demonio de Python, capto todas las excepciones y las lanzo al archivo de registro. No solo lo uso para depurar, sino también en producción. Tengo un pequeño script que ejecuto todas las mañanas que busca algo molesto en los registros.
También ayuda a mantener el demonio en funcionamiento, por supuesto.
Algún código de muestra (elimino las partes no interesantes):
Donde actua () es el verdadero demonio (también escribe para iniciar sesión). Tenga en cuenta que también tengo una variable DEBUG en un archivo de configuración, cuando es True, no bifurco el demonio para que se ejecute en la consola.
Demonios
Los demonios son el equivalente de Unix a los servicios de Windows. Son procesos que se ejecutan en segundo plano independientemente de otros procesos. Eso significa que su padre suele ser init, y que están separados de cualquier tty. Como son independientes, no hay un lugar predefinido para colocar su salida.
Hay muchas bibliotecas y fragmentos de Python para hacer un demonio, en el ejemplo anterior utilizo mi propia función, que combina algunas ideas de las versiones de Steinar Knutsens y Jeff Kunces. Es lo más simple posible, tenga en cuenta que me bifurco dos veces .
fuente