gpt4 book ai didi

bash - 为什么我不能将 python 脚本的标准输出重定向到文件

转载 作者:行者123 更新时间:2023-12-05 04:13:21 25 4
gpt4 key购买 nike

我正在使用 rc.local 中的命令启动在 Raspberry Pi 2 (Raspbian) 上运行的服务,如下所示:

python3.4 /home/pi/SwitchService/ServiceStart.py >/home/pi/SwitchService/log &
python3.4 /home/pi/test.py >/home/pi/log2 &

由于某些原因,尽管脚本打印到标准输出,但我在服务的日志文件中看不到任何文本。

这两个脚本如下所示:

测试.py

print("Test")

ServiceStart.py

from Server import Server
print("Test")
if __name__ == "__main__":
server = Server()

因为我无法使用 bash 解决方案,所以我尝试了 this other solution这是否适合我。它的行为与基于 bash 的方法完全相同。因此,尽管创建了空文件,但我的服务不会向日志文件写入任何内容。

最佳答案

首先,确保您的脚本确实在运行。许多调度程序和启动例程没有设置 PATH,因此它可能找不到 python3.4。尝试修改命令以包含完整路径(例如 /full/path/python3.4)。

其次,不建议在 rc.local 中包含长时间运行的脚本而不在后台运行它们(the documentation 甚至指出了这一点)。 Raspberry Pi 在继续启动之前等待命令完成,因此如果它一直运行,您的 Raspberry Pi 可能永远不会完成启动。

最后,假设前两个问题已得到解决,请确保您的程序不会过度缓冲输出。你可以试试flushing stdout看看是否有帮助。

关于bash - 为什么我不能将 python 脚本的标准输出重定向到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37913191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com