mar*_*nas 21 python command subprocess popen
有没有办法从python调用程序而不等待它返回?我创建了一个脚本,将程序复制到目录并运行该程序.但是当我从python调用程序时,python脚本不会退出,直到我启动的程序退出.我试过os.system和Popen.还有另一种方法吗?
添加信息:os.spawnl与os.P_DETACH仍然不起作用; 根据文档,"P_DETACH类似于P_NOWAIT,但新进程与调用进程的控制台分离".但它仍然以某种方式附加到我的调用进程(调用脚本将不会退出,直到任何被调用的可执行文件返回)
程序:
os.system("start test.exe")
print "Done"
Run Code Online (Sandbox Code Playgroud)
执行test.exe后,它会打印Done.但它不会终止脚本的执行(脚本进程仍在运行).尝试用P_DETACH创建一个守护程序线程和Popen,仍然没有去.
通过使用poll()而不是wait()on Popen,它不会阻塞,也不会等待程序运行。但是,我认为真正停止整个程序等待的唯一方法是创建一个启动进程的守护线程。这样您就永远不必等待。
class MyThread(threading.Thread):
def run(self):
'''Start your thread here'''
pass
thread = MyThread()
thread.daemon = True
thread.start()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51475 次 |
| 最近记录: |