我有一个将其日志输出到标准错误的进程,并且我将其作为 systemd 服务运行Type=simple
。我已将StandardError
和StandardOutput
字段保留为默认值(inherit
和journal
)并设置了该SyslogIdentifier
字段 - 因此我希望在日志中看到具有指定标识符的服务日志。
所有这些在大多数情况下都运作良好。当服务开始输出很长的文本行(超过 50KB)时,问题就出现了。
看来 systemd (或日志)正在打破长日志行(我不确定,但根据测试,我相信限制是 48KB),以出现在多个日志消息中。但是,当我的服务运行一段时间(至少几个小时)并输出非常大的行后,日志中的日志突然停止了。我可以看到该服务仍在正常运行,并且我相信它仍在输出日志消息(尽管我看不到它可能会或可能不会尝试显示的任何错误),但没有更多日志发送到日志。
我尝试使用输出非常大的文本块(基本上通过dd
ing 一些)的哑 shell 脚本来重现这种行为,但我无法通过简单的测试来重现这种行为。/dev/urandom
base64 -w0
我将不胜感激任何有关可能出现的问题以及我可以运行哪些其他测试的想法。