Systemd serviço Python não enviando todas as saídas para o syslog

3

Eu tenho um serviço personalizado e solicitei explicitamente todas as stdout & stderr para ser enviado para o syslog no arquivo de configuração, no entanto, apenas alguns dos resultados aparecem no syslog e no diário (eles são consistentes).

Eu, meu desespero, fiz o seguinte nos arquivos de serviço:

StandardOutput=syslog+console
StandardError=syslog+console

O serviço é um script python e eu escrevo para stdout usando a instrução 'print' (Python 2.7). Esses itens parecem estar perdidos para o ether, enquanto outras saídas de comando escrevem corretamente para o syslog e o journald. Se eu executar o script interativamente, tudo aparecerá no stdout como esperado.

O que falta no meu conhecimento?

    
por fileinster 25.05.2016 / 16:04

1 resposta

1

O comentário de JdeBP foi a solução correta:

O serviço Systemd Python não está enviando todas as saídas para syslog

A solução foi adicionar a opção -u ao interpretador para fazer com que os fluxos padrão enviassem sua saída sem buffer.

    
por 25.05.2016 / 22:35