无法将 crontab 输出重定向到文件

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

我使用的是 raspberry pi 5 model B rev 1.0,并且正在尝试将这个简单的 python 程序的内容重定向到一个文件:

import time
import sys

while True:
    time.sleep(1)
    sys.stdout.write("out\n")
    sys.stderr.write("err\n")

然后我通过

sudo crontab -e
添加了这个运行语句:

@reboot /usr/bin/python3 /home/pi/test.py >> /home/pi/cronlog.log

但是,重新启动计算机后,我在 cronlog.log 中看到的唯一日志是“err”日志。

我也尝试过这个变体:

@reboot /usr/bin/python3 /home/pi/test.py >> /home/pi/cronlog.log 2>&1

甚至还尝试专门指定日志文件:

@reboot /usr/bin/python3 /home/pi/test.py >> /home/pi/cronlog.log 2>> /home/pi/cronerr.log

都不起作用,只是将“err”消息打印到 cronlog.log 文件中。

作为最后的手段,我尝试了:

@reboot /bin/bash -c "/usr/bin/python3 /home/pi/test.py >> /home/py/cronlog.log"

而且......它仍然只打印出错误日志。

有什么帮助吗?谢谢!

请注意,我已在正常的 bash 实例中尝试了所有这些命令,它们按预期完美运行。

python python-3.x cron raspberry-pi
1个回答
0
投票

感谢@larsks 提供此解决方案。

问题已解决,我在 python3 命令后添加了 -u 。 (对于无缓冲)

python3 -u test.py > file.txt
© www.soinside.com 2019 - 2024. All rights reserved.