A classe de log do Python não funciona ao enviar stdout para / dev / null

0

Eu tenho um script Python 3 que tem o log ativado (para fins de depuração). Sempre que eu executo / executo este script, ele está funcionando bem e os arquivos de log são criados.

Eu também criei um script setup.sh-bash para baixar e instalar meu aplicativo. Em seguida, ele inicia automaticamente o script usando nohup , para torná-lo executado em segundo plano. Este comando é seguido por > / dev / null 2 > & 1 & por isso não produz nada para o console. No entanto, isso 'bugs' o módulo de log do Python, já que ele não pode mais enviar algo para os arquivos de log. Ele envia para / dev / null se eu estiver correto.

Eu pesquisei on-line para encontrar uma solução, mas falhei em todas as tentativas. Espero que alguém possa ter uma ideia para isso. Talvez eu deva usar outra coisa para fazer meu script rodar para sempre (até a reinicialização, é claro :)) com a possibilidade de usar o módulo de log do Python 3 e não ter saída no console.

O comando exato que estou usando para iniciar meu script é o seguinte:

su -l -s /bin/bash scriptuser -c 'nohup python3 '/etc/scriptroot/main.py > /dev/null 2>&1 &'

Obrigado antecipadamente

    
por Qlii256 28.04.2015 / 18:23

1 resposta

1

Estou muito triste em dizer que agora encontrei a solução. Parece que eu não cavei o suficiente. Agora estou usando o daemon-start-stop suportado pela maioria dos sistemas UNIX e está funcionando como deveria.

Eu segui um tutorial na internet que pode ser encontrado aqui:

Espero que isso ajude com muitos outros usuários que tenham o mesmo problema / busquem a mesma resposta.

Obrigado por ler.

    
por 29.04.2015 / 17:47