You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单个Bash脚本在不同终端运行不同Python文件(各含独立PID)

解决多终端并行运行不同Python脚本的问题

看起来你现在的脚本是串行在同一个终端里依次执行的,这肯定达不到每个脚本在独立终端运行的需求。我来给你调整一下脚本,让每个Python文件都在新的终端窗口里启动,而且是并行运行的。

核心思路

树莓派默认用的是LX终端(lxterminal),我们可以直接调用终端命令,让它在新窗口里执行指定的Python脚本,同时用&把进程放到后台,这样脚本不用等前一个终端关闭就可以启动下一个。

修改后的启动脚本(记得把后缀改成.sh,因为这是Shell脚本不是Python脚本)

#!/bin/sh
###### STARTING UP NRF MODULE IN NEW TERMINAL #####
sleep 2
# 启动第一个终端运行NRF_MQTT.py
lxterminal --command="cd ~/Desktop/RPI_GATEWAY/NRF24L01 && python NRF_MQTT.py" &
sleep 5
###################################
#### STARTING UP TEST MODULE 1 IN NEW TERMINAL ####
# 启动第二个终端运行TEST_PUB_1.py
lxterminal --command="cd ~/Desktop/RPI_GATEWAY/TEST && python TEST_PUB_1.py" &
sleep 2
###################################
#### STARTING UP YOUR THIRD SCRIPT IN NEW TERMINAL ####
# 把下面的路径和文件名替换成你第三个Python文件的信息
lxterminal --command="cd ~/Desktop/RPI_GATEWAY/[第三个脚本的文件夹名] && python [第三个脚本名].py" &

关键细节说明

  1. lxterminal --command="...":这是告诉LX终端打开一个新窗口,执行引号里的命令(先切换到脚本所在目录,再运行Python脚本)。
  2. &符号:把终端进程放到后台运行,这样你的启动脚本不会卡在第一个终端窗口,而是继续启动后面的终端。
  3. 路径问题:用~/代替你的home目录,避免相对路径出错;如果你的Python是3.x版本,记得把python改成python3。
  4. 终端保持打开(可选):如果希望脚本运行完后终端不关闭,可以把命令改成这样:
    lxterminal --command="cd ~/Desktop/RPI_GATEWAY/NRF24L01 && python NRF_MQTT.py; exec bash" &
    
    加exec bash会在脚本结束后让终端保持交互状态。

最后一步:给脚本加执行权限

打开终端,进入脚本所在目录,执行:

chmod +x RPI_GATEWAY_LAUNCHER.sh

之后直接运行./RPI_GATEWAY_LAUNCHER.sh就能看到三个终端依次打开,各自运行对应的Python脚本了。

内容的提问来源于stack exchange,提问作者nishthapa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:07:25