【发布时间】:2011-04-05 11:20:01
【问题描述】:
我的 python 脚本需要启动一个后台进程,然后继续处理完成而不等待返回。
后台脚本会处理一段时间,不会产生任何屏幕输出。
不需要进程间数据。
我尝试过使用各种方法子进程、多进程,但显然缺少一些东西。
谁有一个简单的例子?
TIA
【问题讨论】:
标签: python
我的 python 脚本需要启动一个后台进程,然后继续处理完成而不等待返回。
后台脚本会处理一段时间,不会产生任何屏幕输出。
不需要进程间数据。
我尝试过使用各种方法子进程、多进程,但显然缺少一些东西。
谁有一个简单的例子?
TIA
【问题讨论】:
标签: python
这个怎么样:
import subprocess
from multiprocessing import Process
Process(target=subprocess.call, args=(('ls', '-l', ), )).start()
它不是那么优雅,但它满足您的所有要求。
【讨论】:
简单:
subprocess.Popen(["background-process", "arguments"])
如果你想稍后检查后台进程是否完成了它的工作,保留对 Popen 对象的引用并使用它的poll() 方法。
【讨论】:
在Calling an external command in Python(根据@lecodesportif)有一个很好的关于如何做到这一点的各个部分/部分的文章。
快速回答的要点是:
retcode = subprocess.call(["ls", "-l"])
【讨论】:
retcode = subprocess.call(["ls -l &"], shell=True)。这对我有用。