私はsubprocess32.Popen
を使用しようとしていますが、これによりシステムがクラッシュする(CPU 100%)原因となります。だから、私は次のコードを持っている:この前サブプロセス32.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]])
...を、私はこれで問題はなかった - それは死ん遅かったことを除いて。
私はこれが速いことを知っていますが、CPUが数秒で100%も過ぎ、システムがクラッシュして強制的に再起動します。
ポポンをクラッシュさせているのは私がやっていることですか?
Linuxの場合、Python2.7であれば、まったく役に立ちます。
ありがとうございました。
あなたのスクリプトは正確に何をしていますか?この場合、some_iterableはどれくらいの大きさですか? 'check_output()'は各プロセスが終了するのを待ちます。 'Popen()'はそうしないので、複数の並列プロセスが生成されます。そのため、スクリプトがメモリ不足のために多くのリソースを消費すると、システムが不安定になる可能性があります。 – mata
'some_iterable'は約200万エントリです。私はあなたが言っていることを理解していますが、どうすればこの問題を避けることができますか? – JohnJ