サブプロセスの使用に制限がありますか?私は、それが外部コマンドの1017回目の実行で絶えず失敗することを観察しました。pythonリソース制限
使用方法:エラーと出力を期待 subprocess.Popen (cmd, shell=True, stdout=file_hndl, stderr=file_hndl)
は、あなたはファイルハンドルが不足しているfile_hndl
サブプロセスの使用に制限がありますか?私は、それが外部コマンドの1017回目の実行で絶えず失敗することを観察しました。pythonリソース制限
使用方法:エラーと出力を期待 subprocess.Popen (cmd, shell=True, stdout=file_hndl, stderr=file_hndl)
は、あなたはファイルハンドルが不足しているfile_hndl
subprocess.Popenで障害がない 詳細情報は、大混乱がstdout
とstderr
の代わりにfile_hndl
を使用して作成されます。
すべてのリソースは、オペレーティングシステムの各ユーザープロセスに限定されています。
例:On Linux
$ ulimitの-a
コアファイルサイズ(ブロック、-c)0
データワンセグサイズ(キロバイト、-d)無制限
スケジューリング優先度(-e)0
ファイルサイズ(ブロック、-f)(-i)30254
最大ロックされたメモリ(キロバイト、-l)64
最大メモリサイズ(キロバイト、-m)無制限
開いているファイル(-n)1024無制限
保留中のシグナル
開くことができるファイルの数は1024であり、これはsubprocess.Popen
の実行を制限していたことに注意してください。
resource.setrlimitを使用して、必要に応じてリソース制限を設定します。
例:resource.setrlimit (resource.RLIMIT_NOFILE, (20000,20000))
ファイルオブジェクトをファイルにリダイレクトします。それを増やしてチェックすることができます。ここ
https://unix.stackexchange.com/questions/36841/why-is-number-of-open-files-limited-in-linux https://unix.stackexchange.com/questions/84227/limits-on-the-number-of-file-descriptors
はアレックスが、私は:-)それを考え出ししばらく研究した後、のpythonに新しい蜂午前いただきありがとうございます。 –
アレックスは、私の使い方が間違っている** Popen **です。私は1000の外部コマンドを実行するとアプリケーションが徐々に遅くなっていくのを観察しています。 –