Do NOT terminate python subprocess when script ends
I've seen a ton of questions for the opposite of this which I find odd because I can't keep my subprocess from closing but is there a way to call subprocess.Popen and make sure that it's process stays running after the calling python script exits?
My code is as follows:
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)
This opens the process just fine, but when I close out of my script (either because it completes or with Ctrl+C) it also closes the visualizerUI.py subprocess, but I want it to stay open. Or at least have the option.
What am I missing?
删除stdout = subprocess.PIPE并添加shell = True,以便它可以在可分离的子shell中生成。
Another option would be to use:
import os
os.system("start python %s %s %s %s" % (script, str(width), str(height), str(pixelSize)))
To start your new python script in a new process with a new console.
Edit: just saw that you are working on a Mac, so yeah I doubt this will work for you.
How about:
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/66492.html
上一篇: 用子流程关闭图像
下一篇: 脚本结束时不要终止python子进程