Ubuntu环境下Python Multiprocessing如何为每个进程新建独立终端窗口
Ubuntu下多进程绑定独立终端窗口输出的实现方案
核心实现思路
Ubuntu 桌面环境默认提供终端启动命令,可以直接在子进程逻辑中调用终端命令,将你的业务逻辑作为终端的执行参数传入,即可实现每个进程的输出独立展示在单独的终端窗口中。
具体实现方案
方案1:GNOME 桌面环境(Ubuntu 默认桌面)
核心调用命令为 gnome-terminal -- bash -c "你的业务命令; exec bash",末尾加 exec bash 是为了业务命令执行完毕后终端不会自动关闭,方便查看历史输出,不需要保留的话可以去掉这部分。
Python Multiprocessing 参考示例:
import multiprocessing import os def run_worker(worker_cmd): # 启动独立终端运行子进程任务 os.system(f'gnome-terminal -- bash -c "{worker_cmd}; exec bash"') if __name__ == "__main__": # 替换为你三个进程对应的实际业务命令 worker_commands = [ "echo '进程1启动' && sleep 15", "echo '进程2启动' && sleep 15", "echo '进程3启动' && sleep 15" ] process_list = [] for cmd in worker_commands: p = multiprocessing.Process(target=run_worker, args=(cmd,)) process_list.append(p) p.start() for p in process_list: p.join()
其他桌面环境适配
如果你的系统使用的不是 GNOME 桌面,替换为对应终端的启动命令即可:
- KDE 桌面:使用
konsole -e "你的业务命令" - Xfce 桌面:使用
xfce4-terminal -e "你的业务命令"
注意事项
- 如果业务命令中包含引号、特殊字符,提前做转义处理,避免 bash 解析出错
- 不需要终端常驻的话,直接去掉命令末尾的
; exec bash即可,任务执行完终端会自动关闭
内容的提问来源于stack exchange,提问作者skakavyponik
相关产品推荐
相关产品推荐

