在添加时间戳并附加到日志文件时管道损坏

问题描述 投票:0回答:1

我正在运行这样的Python程序

nohup python3 -u /home/myuser/foo.py | ts '[%Y-%m-%d %H:%M:%.S]' &>> /var/log/mylogs/foo.log &

程序处理输入和

print
的输出。它是多线程的,但大部分处理和所有
print
操作都发生在一个“主”线程上。

现在有几次,我遇到了程序尝试打印但点击了

BrokenPipeError: [Errno 32] Broken pipe
的情况。什么会导致这种情况发生?

我发现这个问题让我觉得我正在对

| ts ... &>>
做出假设,就像
ts
可能会因某种原因而死亡,但这看起来很奇怪,我以同样的方式设置的其他程序没有表现出来这种行为。

linux logging pipe
1个回答
0
投票

试试这个:

nohup bash -c "python3 -u /home/myuser/foo.py | ts '[%Y-%m-%d %H:%M:%.S]' &>> /var/log/mylogs/foo.log" &
© www.soinside.com 2019 - 2024. All rights reserved.