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.
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?
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.