脚本结束时不要终止python子进程

我看到很多与此相反的问题,我觉得很奇怪,因为我无法让子进程关闭,但有没有办法调用subprocess.Popen并确保进程在调用python脚本后仍然运行退出?

我的代码如下:

dname = os.path.dirname(os.path.abspath(__file__))
script = '{}/visualizerUI.py'.format(dname)
self.proc = subprocess.Popen(['python', script, str(width), str(height), str(pixelSize)], stdout=subprocess.PIPE)

这可以很好地打开这个过程,但是当我关闭我的脚本(或者因为它完成或者使用Ctrl + C),它也会关闭可视化UIUI的子进程,但是我希望它保持打开状态。 或者至少有选择。

我错过了什么?


删除stdout = subprocess.PIPE并添加shell = True,以便它可以在可分离的子shell中生成。


另一种选择是使用:

import os
os.system("start python %s %s %s %s" % (script, str(width), str(height), str(pixelSize)))

用新控制台在新进程中启动新的Python脚本。

编辑:只是看到你在Mac上工作,所以是的,我怀疑这会对你有用。

怎么样:

import os
import platform

operating_system = platform.system().lower()
if "windows" in operating_system:
    exe_string = "start python"
elif "darwin" in operating_system:
    exe_string = "open python"
else:
    exe_string = "python"
os.system("%s %s %s %s %s" % (exe_string, script, str(width),
          str(height), str(pixelSize))))
链接地址: http://www.djcxy.com/p/66491.html

上一篇: Do NOT terminate python subprocess when script ends

下一篇: Deserialization version conflicts