在启动raspberry pi运行时,Python将输出保存到文件

时间:2016-01-15 14:04:20

标签: python linux shell exception raspberry-pi

我的raspberry pi有一个问题,它启动了一个python脚本,它在某处产生了异常,并且我已经捕获了所有打印到终端的错误(如果从空闲状态运行)。

但是如何在打印时运行时将打印输出保存到文件中? 我在互联网上找到了这个脚本,但它似乎没有写出打印文本,它创建了文件但内容是空的(每隔30秒它应该打印'检查')

这是pi启动后正在执行的代码,它完美地显示了GUI元素(由于GPIO引脚需要sudo)

#!/bin/sh
startx
sudo python /home/pi/python_gui.py > /home/pi/output.log

希望有人知道答案,提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果没有看到正在输出的错误,调试任何失败的脚本将非常困难。因此,首先应确保记录异常。这一行:

sudo python /home/pi/python_gui.py > /home/pi/output.log

会将stdout重定向到文件/home/pi/output.log。但是,如果您想记录错误,还需要重定向stderr。这里有两个选择,可以将stderr重定向到不同的文件,也可以将其重定向到同一个文件,方法是将其重定向到stdout。例如:

要重定向到新文件:

sudo python /home/pi/python_gui.py > /home/pi/output.log 2> /home/pi/error.log

要将两者重定向到同一个文件:

sudo python /home/pi/python_gui.py &> /home/pi/output.log

或者:

sudo python /home/pi/python_gui.py > /home/pi/output.log 2>&1

您可以找到更多信息和示例on this question

如果您想在每次运行时更新日志文件,可以使用>>代替它,例如:

sudo python /home/pi/python_gui.py &>> /home/pi/output.log