2012-12-10 41 views
5

我正在尋找一個方式如何啓動與蟒蛇subprocess模塊與低系統優先級過程中,我已經找到:有限的優先級啓動子進程

subprocess manual中沒有提及priority

我已經有了解決方案,似乎工作:

self.start_low_priority = ('cmd', '/c', 'start', '/MIN', '/LOW', '/B', '/WAIT') 

注:開關/B /WAIT必須是在此爲了這個工作

而且使用它作爲:

args = self.start_low_priority + ('foo.exe', 'bar', 'foobar') 
subprocess.call(args, shell=False) 

但是,這種解決方案似乎不是正確的,乾淨的w唉加Process Explorer是無法建立正確的「處理樹」從這樣的應用程序啓動(因此你沒有能力殺死進程樹)。

有沒有什麼好的練習方式爲windows做這個? Python沒有提供任何我錯過的多平臺解決方案嗎?

回答

4

您可以使用psutil庫。 特別是您可以將優先級設置psutil.Process.nice設置爲所需的值。

另請參閱this答案爲例。


編輯:縱觀psutil的文檔直接設置Process.nice已過時,你應該使用Process.nice(value)代替。