python 在启动树莓派时运行时将输出保存到文件

标签 python linux shell exception raspberry-pi

我的树莓派有一个问题,它启动了一个 python 脚本,它在某处生成了一个异常,我已经捕获了打印到终端中的所有错误(如果从空闲运行)。

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

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

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

希望有人知道答案,在此先感谢!

最佳答案

如果看不到正在输出的错误,将很难调试任何失败的脚本。所以,首先你应该确保你正在记录异常。线路:

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

关于python 在启动树莓派时运行时将输出保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34812798/

相关文章:

Linux sftp 服务器上的权限问题

Bash Scripting FFMPEG 如何等待进程完成

bash - shell脚本中的FTP不起作用

linux - 如何将时间 gcc 输出重定向到文件?

python - 音频可视化

python - 以编程方式加载/卸载插件并更改 Gedit 3 中的设置

c++ - 如何在Linux中的C++中查找函数属于哪个库

linux - rust 循环中的阴影变量

python - Tensorflow,喂养 Estimator.fit(batch)

python - SSL:来自 Ubuntu 16.0.4 中的 Python pip 的 CERTIFICATE_VERIFY_FAILED 错误