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

如何在Python中启动外部进程且无需等待其完成/返回?

在Ubuntu 22.10中用Python启动外部程序后直接终止脚本

以下几种方法可以实现启动浏览器、计算器等程序后,Python脚本立即终止,无需等待外部程序关闭:

方法1:使用subprocess.Popen(推荐)

subprocess是Python官方推荐替代os.system的模块,通过Popen配合start_new_session=True参数,能让启动的程序脱离当前Python进程的控制,脚本结束后程序仍可正常运行。

import subprocess

# 启动Brave浏览器
subprocess.Popen(["/usr/bin/brave-browser"], start_new_session=True)

方法2:结合bash后台运行命令

在bash命令后添加&让程序后台运行,同时用nohup忽略挂起信号,避免脚本退出时终止外部程序。重定向输出到/dev/null可以防止生成多余的nohup.out文件。

import os

os.system("nohup /usr/bin/brave-browser > /dev/null 2>&1 &")

方法3:使用os.fork()底层实现

通过fork子进程来执行外部程序,父进程直接退出,子进程替换为目标程序继续运行。

import os
import sys

# 创建子进程
if os.fork() == 0:
    # 子进程替换为浏览器程序
    os.execv("/usr/bin/brave-browser", ["/usr/bin/brave-browser"])
# 父进程直接退出
sys.exit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:01:27