首页 > 解决方案 > 在启动时在终端中启动 python 脚本并在异常时保持打开状态

问题描述

编写一个数据记录程序,该程序旨在在 raspberry 启动时运行。我正在使用 lxsessions 自动启动来启动一个 shell 脚本,该脚本具有启动我的 python 程序的命令(我的 python 脚本需要 sudo)

当我继续调试时,我希望终端窗口在遇到错误时保持打开状态。

我以前成功地完成过一次,但失去了我的工作。

我的自动启动文件是:

#!/bin/bash
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@lxterminal -e sudo sh /home/pi/launcher.sh
@xscreensaver -no-splash

我的脚本文件是:

#!/bin/sh

echo Script is running

sudo /usr/bin/python3 /home/pi/hms/hms5-1.py

我认为这样的事情(在 autstart 文件中)会起作用,但没有:

@lxterminal -e -hold sudo sh /home/pi/launcher.sh

一个简单的互联网搜索吐出了有关如何在启动时执行命令的示例,甚至启动脚本,但到目前为止没有任何帮助。先感谢您.....

标签: pythonraspberry-pipython-3.8

解决方案


所以我重建了我的树莓派,不得不再次经历这个。因此,在我能够让它工作一次之后,我按照之前的指示进行了编辑,以使此处发布的内容更加清晰。注意 - 我认为我之前犯的错误是使用 sudo (sudo nano) 而我应该只使用 nano....

另请注意,我正在启动的 python 程序是/home/pi/hms/hms2-v2.py

*** 设置是一个 4 步过程 *** 你必须有 XTERM

第 1 步 - 安装 XTERM:

sudo apt-get install xterm

第2步

阅读https://www.raspberrypi.org/forums/viewtopic.php?t=227191

首先在此处创建自动启动:/home/pi/.config/lxsession/LXDE-pi/autostart 注意 /home/pi/.config/ 下面的文件夹可能不存在,如果没有按照上面的方式创建它们。注意:目录必须是 LXDE-pi NOT LXDE

然后使用 nano ~/.config/lxsession/LXDE-pi/autostart 编辑自动启动文件

注意:请勿在上述命令中使用 sudo 将以下内容放入文件中:

#!/bin/bash



@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
sh /home/pi/launcher.sh
@xscreensaver -no-splash

步骤 3 创建脚本 (.sh) 文件:/home/pi 目录下的 launcher.sh 在文件 launcher.sh 中包含以下内容:

#!/bin/sh


echo starting script
xterm -T "HMS" -geometry 100x70+10+35 -hold -e sudo /usr/bin/python3 /home/pi/hms/hms2-v2.py

第 4 步使 .sh 文件可执行:sudo chmod +x launcher.sh


推荐阅读