Python subprocess.Popen「OSError:[Errno 12]メモリを割り当てられません」
注:この質問はもともとここで尋ねられたものですが、許容できる回答が実際には見つからなかったにもかかわらず、賞金の期限が切れました。元の質問で提供されたすべての詳細を含めて、この質問を再質問します。 Pythonスクリプトは、schedモジュールを使用して60秒ごとに一連のクラス関数を実行しています。 # sc is a sched.scheduler instance sc.enter(60, 1, self.doChecks, (sc, False)) スクリプトは、ここのコードを使用してデーモン化されたプロセスとして実行されています。 doChecksの一部として呼び出される多くのクラスメソッドは、サブプロセスモジュールを使用してシステム関数を呼び出し、システム統計を取得します。 ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE).communicate()[0] これは、スクリプト全体が次のエラーでクラッシュするまでの期間、正常に実行されます。 File "/home/admin/sd-agent/checks.py", line 436, in getProcesses File "/usr/lib/python2.4/subprocess.py", line 533, in __init__ File "/usr/lib/python2.4/subprocess.py", line 835, in _get_handles OSError: [Errno 12] Cannot allocate memory スクリプトがクラッシュした後のサーバー上のfree -mの出力は次のとおりです。 $ free -m …