python - 在启动时在终端中启动 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
一个简单的互联网搜索吐出了有关如何在启动时执行命令的示例,甚至启动脚本,但到目前为止没有任何帮助。先感谢您.....
解决方案
所以我重建了我的树莓派,不得不再次经历这个。因此,在我能够让它工作一次之后,我按照之前的指示进行了编辑,以使此处发布的内容更加清晰。注意 - 我认为我之前犯的错误是使用 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
推荐阅读
- node.js - TLS 写入返回 400 Bad Request
- node.js - 使用 require('cors') 但仍然出现 CORS 错误
- twitter - 是否可以使用 Twitter API 来获取超过 7 天的回复?
- python - 如何从字符串中提取文本和表情符号?
- jquery - jquery更改在html选择选项中不起作用
- delphi - 使用 Indy 单元进行文件加密?
- javascript - how to find value of corrsponding data attr based on text inside div with jquery javascript
- css - React 标题 - 不在 Firefox 和 Safari 手机浏览器上显示
- php - 两级数据上的PHP MySQL循环
- python - 如何添加具有从 0 到 X 的多个数字序列的 pandas 列,其中 X 取决于另一列中连续数字的数量