Python 程序在 运行 启动时在 tmux 会话中崩溃

Python program crashes when running in tmux session from boot

我有一个 python3 程序,我 运行 在使用 ssh 连接的无头 raspberry pi 配置上没有任何问题。我登录到我的 pi,启动 tmux 会话,然后 运行 程序。它将无限期地运行。在开发过程中,如果发生异常,我的 python 程序将终止并且我会看到错误信息。

现在,如果我不在身边时我的 pi 重新启动,我会希望它自动 运行 这个程序。我实施了以下步骤来实现这一目标:

我创建了一个包含这一行的脚本:

tmux new-session -d -s xbnw 'python3 /home/pi/python/XbNWSer05.py'

然后我修改了 /etc/rc.local 以包含这一行:

sudo -u pi bash /home/pi/tmux_xbnw.sh

现在,当我重新启动我的 pi 时,一切正常几分钟。该程序显然是 运行ning。我可以登录并附加到会话并查看我的调试输出,一切看起来都很好。

几分钟后出现问题,如果我登录并连接到 tmux 会话,我突然发现自己在命令提示符下,好像程序从未 运行。此外,tmux 会话不再处于活动状态。没有迹象表明发生了什么。

1) 我的程序启动不正确吗? 2) 如果是这样,有没有办法弄清楚发生了什么?

添加日志文件,手动或使用 logger module。然后你可以找出程序是否启动,你可以每分钟左右记录一次,看看它什么时候死了,最后的状态是什么。

您还可以检查系统日志是否有重启。我的电源线有问题,这让我的 Pi 在过去重新启动...