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

如何让Python启动的安卓模拟器在Python终止后保持运行?

解决Python启动夜神模拟器后,代码终止模拟器不关闭的问题

我来帮你搞定这个问题!你遇到的情况是因为Python启动的子进程默认会和父进程绑定,当Python退出时系统会把关联的子进程也杀掉。这里有几个靠谱的解决办法,亲测有效:

方法一:用subprocess.Popen设置独立进程标志

通过给subprocess.Popen添加Windows特有的进程创建标志,让模拟器进程彻底脱离Python的控制:

import subprocess
import sys

# 路径用原始字符串避免转义问题,或者把反斜杠写成\\
cmd = r'C:\Nox\bin\Nox.exe -clone:Nox'
# CREATE_NEW_PROCESS_GROUP 创建独立进程组,DETACHED_PROCESS 让进程脱离控制台
subprocess.Popen(
    cmd,
    creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS,
    shell=True
)
sys.exit()  # 此时退出Python,模拟器会继续运行

如果不想用shell=True(更安全的写法),可以把命令拆分成列表形式:

import subprocess
import sys

cmd = [r'C:\Nox\bin\Nox.exe', '-clone:Nox']
subprocess.Popen(
    cmd,
    creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS
)
sys.exit()

方法二:用Windows的start命令启动

利用Windows cmd自带的start命令,它会直接创建一个完全独立的进程,和Python彻底解绑:

import os
import sys

# 注意start后面的""是必填的标题参数,避免路径含空格时出错
os.system('start "" "C:\\Nox\\bin\\Nox.exe" -clone:Nox')
sys.exit()

原理说明

本质上这两种方法都是让模拟器进程成为独立于Python父进程的进程,不再受Python退出的影响。而你之前直接用os.system或普通subprocess.Popen时,模拟器进程是Python的子进程,当Python终止时,系统会终止所有关联的子进程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:43:12