我使用的是 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 实例中尝试了所有这些命令,它们按预期完美运行。
感谢@larsks 提供此解决方案。
问题已解决,我在 python3 命令后添加了 -u 。 (对于无缓冲)
python3 -u test.py > file.txt