在python中以非阻塞方式启动外部应用程序

时间:2014-03-13 06:55:03

标签: python process subprocess taskmanager

使用python 2.7,Windows 7 64位。我想调用外部应用程序来使用python脚本启动。启动外部应用程序后,主进程应该继续并最终终止,而不必等待或监听外部应用程序终止。 意味着,当外部应用程序启动时,主要过程不应依赖外部应用程序终止。 我用过:

print "ss"
os.system(r"D:\pythonCode\external.exe")
print "application started"

在上面,代码,external.exe已启动,但它从不打印"应用程序已启动",并且主进程因此永远不会终止。

还试过:

p = subprocess.Popen([r"D:\pythonCode\external.exe"])
print "application started"
sys.exit(0)

在上面的例子中,启动了external.exe,它打印了"应用程序启动",但主进程永远不会终止。主进程等待外部应用程序终止,这是不希望的。我也调查了this q&a但没有得到解决方案。

我也试过了 p=subprocess.Popen([r"D:\pythonCode\external.exe"],creationflags=subprocess.CREATE_NEW_PROCESS_GROUP),但发生了相同的阻塞

以及

DETACHED_PROCESS = 0x00000008
pid = subprocess.Popen([r"D:\pythonCode\external.exe"], creationflags=DETACHED_PROCESS).pid

0 个答案:

没有答案