我的python腳本需要啓動後臺進程,然後繼續處理完成,而不必等待返回。從python腳本內啓動python腳本作爲後臺進程
後臺腳本將會處理一段時間,並且不會生成任何屏幕輸出。
沒有所需的進程間數據。
我已經嘗試過使用各種方法子進程,多處理,但我顯然缺少的東西。
有沒有人有一個簡單的例子?
TIA
我的python腳本需要啓動後臺進程,然後繼續處理完成,而不必等待返回。從python腳本內啓動python腳本作爲後臺進程
後臺腳本將會處理一段時間,並且不會生成任何屏幕輸出。
沒有所需的進程間數據。
我已經嘗試過使用各種方法子進程,多處理,但我顯然缺少的東西。
有沒有人有一個簡單的例子?
TIA
這個怎麼樣:
import subprocess
from multiprocessing import Process
Process(target=subprocess.call, args=(('ls', '-l',),)).start()
這是不是所有的優雅,但它滿足您的所有需求。
有關於如何做到這一點的各種片/件中的Calling an external command in Python一個很好的書面記錄(每@lecodesportif)。
一個快速的答案的要點是:
retcode = subprocess.call(["ls", "-l"])
簡單:
subprocess.Popen(["background-process", "arguments"])
如果您想稍後檢查後臺進程是否完成了它的任務,保留到POPEN對象的引用和使用它的方法是poll()
。
它沒有「沒有等待」的要求。 – 2010-08-29 17:39:50
啊 - 我的不好,我錯過了閱讀。你很正確。斯特凡諾的回答應該做你想要的。 – heckj 2010-08-29 18:07:14
怎麼樣?'retcode = subprocess.call([「ls -l&」],shell = True)''。這對我行得通。 – SunSparc 2013-05-21 21:33:45