脚本结束时不要终止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