我正在调试我正在为我正在编写的嵌入式覆盆子项目编写的python应用程序,因为它使用的是TFT屏幕而不是完整的显示器而且没有显示器/键盘,所以我我必须通过TFT桌面上的图标启动python应用程序(非常小)。我无法通过SSH启动应用程序,因为它需要X(由于PyQT4),所以为了让它在RPi上运行,必须使用设备本身的桌面图标启动它。
桌面图标启动使用以下内容的shell脚本:
sudo python appname.py >> logfile.log
但是这并没有写出它所遇到的任何错误,它只会记录我在做出任何错误之前正在做的事情。
如果我从RPi中取出SD卡并将其放入第二个RPi我连接到一个完整的鼠标/键盘/显示器,我可以运行python应用程序并在终端中看到错误,但这不是帮我弄清楚完全组装的设备上发生了什么。
如何记录我通常在终端中看到的错误?
编辑:当然我在应用程序中捕获错误,但是我在python应用程序中发送shell命令,这可能是python中try / catch无法捕获的问题。我想在启动python脚本时捕获终端中的所有输出,无论它是什么来源。答案 0 :(得分:4)
就目前而言,你只是捕获标准输出。将您的调用修改为以下内容:
sudo python appname.py >> logfile.log 2>&1
这将重定向stdout和stderr。
答案 1 :(得分:1)
对于唯一的错误,您可以使用:
sudo python appname.py 2>> logfile.log
仅限stdout
:
sudo python appname.py >> logfile.log
#same as sudo python appname.py 1>> logfile.log
适用于stdout
和stderr
:
sudo python appname.py >> logfile.log 2>&1
答案 2 :(得分:0)
您还可以将stderr捕获到单独的文件中:
sudo python appname.py >> logfile.log 2>> error.log