Systemd Python 服务未将所有输出发送到 syslog

Systemd Python 服务未将所有输出发送到 syslog

我有一项定制服务,并明确要求所有标准输出&标准错误发送至系统日志在配置文件中,但是只有部分输出出现在系统日志和日志中(它们是一致的)。

我绝望地在服务文件中做了以下操作:

StandardOutput=syslog+console
StandardError=syslog+console

该服务是一个 python 脚本,我写到标准输出使用该print声明。这些项目似乎丢失了以太,而其他命令输出都正确写入系统日志日志。如果我以交互方式运行脚本,所有内容都会出现在标准输出正如预期的那样。

我的知识还欠缺什么?

答案1

JdeBP 的评论是正确的解决方案:

Systemd Python 服务未将所有输出发送到 syslog

解决方案是向解释器添加-u选项,以使标准流发送无缓冲的输出。

相关内容