私の組み込みシステムが数時間実行された後に応答しません。調査の結果、システムはプロセスのリストが増え続けていることを示しました<defunct>
。実行するとps axl
長いリストが表示され、そのうちの1つは次のとおりです。
1 0 6421 1 20 0 0 0 exit Zs ? 0:00 [timeout] <defunct>
1 0 6429 1 20 0 0 0 exit Zs ? 0:00 [timeout] <defunct>
1 0 6476 1 20 0 0 0 exit Zs ? 0:00 [timeout] <defunct>
1 0 6497 1 20 0 0 0 exit Zs ? 0:00 [timeout] <defunct>
このプロセスを終了することはできません。これらのプロセスが増加すると、すべてのRAMが消費され、システムが応答しなくなる可能性があります。もう1つの問題は、<defunct>
起動時にinitスクリプトによって実行されるプロセスを終了しようとすると、そのプロセスも消えることです。なぜこれらのゾンビプロセスがinitによって終了されず、RAMが不足しているのかについての手がかりが見つかりません。
ベストアンサー1
死んだプロセスはかなりのメモリを消費せず、pid、戻り状態、およびリソース使用量統計を格納するために少数のバイトしか使用しません。
ただし、正常に実行されるUnix / Linuxオペレーティングシステムでは、initが親である失敗したプロセスは後者によって迅速にリサイクルされる必要があります。
システムに深刻な問題があります。これは、観察中のメモリリークを説明することもできます。