Como você envia a saída de um script inicial para um terminal para encontrar rastreamentos no código python? Está me levando para sempre fazer coisas sem traços que costumavam levar apenas um segundo. Estou tendo que fazer várias chamadas de gravação de arquivo para rastrear erros. O que demorou a ser descoberto antes com um rastreio está se transformando em vários minutos minutos. Isso é miserável. Isso já dura algumas semanas e eu estou cansado disso. alguns diriam sobre isso, por favor. Sinto como se estivesse usando assembly sem um depurador novamente.
16
/var/log/upstart
. Realmente útil, obrigado.Há uma seção inteira sobre técnicas de depuração no Upstart Cookbook . A coisa mais fácil que você pode fazer é adicionar
--debug
aos argumentos do kernel, o que aumentará a verbosidade do iniciante e enviará tudo para o syslog. Sim, a depuração é complexa, é um reflexo da complexidade da rede necessária para criar um sistema init paralelo. Tenho certeza de que há espaço para melhorias.fonte
Quando escrevo um daemon python, pego todas as exceções e as lanço no arquivo de log. Eu não apenas uso para depuração, mas também na produção. Eu tenho um pequeno script que eu executo todas as manhãs que procura algo perturbador nos logs.
Também ajuda a manter o daemon em execução, é claro.
Algum código de exemplo (removo as partes não interessantes):
Onde actua () é o daemon real (ele também grava no log). Observe que eu também tenho uma variável DEBUG em um arquivo de configurações, quando é True, não bifurco o daemon para que ele seja executado no console.
Daemons
Daemons são o equivalente unix aos serviços do Windows. São processos executados em segundo plano, independentes de outros processos. Isso significa que seu pai geralmente é init e que eles são desapegados de qualquer tipo. Como eles são independentes, não há lugar predefinido para colocar sua saída.
Existem muitas bibliotecas e trechos de python para criar um daemon. No exemplo acima, eu uso minha própria função, que combina algumas idéias das versões Steinar Knutsens e Jeff Kunces. É o mais simples possível, observe que eu bifurco duas vezes .
fonte