我一直在嘗試使用subprocess32.Popen
但這會導致我的系統崩潰(CPU 100%)。所以,我有以下代碼:subprocess32.Popen崩潰(CPU 100%)
import subprocess32 as subprocess
for i in some_iterable:
output = subprocess.Popen(['/path/to/sh/file/script.sh',i[0],i[1],i[2],i[3],i[4],i[5]],shell=False,stdin=None,stdout=None,stderr=None,close_fds=True)
在此之前,我有以下幾點:
import subprocess32 as subprocess
for i in some_iterable:
output subprocess.check_output(['/path/to/sh/file/script.sh',i[0],i[1],i[2],i[3],i[4],i[5]])
..我曾與這個沒有問題 - 除了它已經死了緩慢。
隨着Popen我發現這很快 - 但是我的CPU在幾秒內變得太過100%,系統崩潰 - 迫使硬重啓。
我想知道我在做什麼是造成Popen崩潰?
在Linux上,Python2.7如果有幫助的話。
感謝。
你的腳本究竟做了什麼,在這種情況下'some_iterable'有多大? 'check_output()'等待每個進程完成,'Popen()'不會,所以你正在處理多個並行進程。所以如果你的腳本消耗了大量資源(內存不足),這可能是系統變得不穩定的原因。 – mata
'some_iterable'大約有2百萬個條目..我明白你在說什麼,但我該如何避免這種情況? – JohnJ