我的raspberry pi有一个问题,它启动了一个python脚本,它在某处产生了异常,并且我已经捕获了所有打印到终端的错误(如果从空闲状态运行)。
但是如何在打印时运行时将打印输出保存到文件中? 我在互联网上找到了这个脚本,但它似乎没有写出打印文本,它创建了文件但内容是空的(每隔30秒它应该打印'检查')
这是pi启动后正在执行的代码,它完美地显示了GUI元素(由于GPIO引脚需要sudo)
#!/bin/sh
startx
sudo python /home/pi/python_gui.py > /home/pi/output.log
希望有人知道答案,提前谢谢!
答案 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