プロセステーブルの制限

プロセステーブルの制限

Linuxオペレーティングシステムでは、プロセステーブルに制限があるかどうかを知りたいです。いっぱいできますか?それでは、スペースを解放するにはどうすればよいですか(ゾンビプロセスのエントリを削除してみることもできます)。

答え1

実行すると、sysctl kernel.pid_max kernel.threads-max現在のプロセスとスレッドの最大制限をそれぞれ表示できます。 (各プロセスは少なくとも1つのスレッドを占有します。マルチスレッドの場合はより多くのスレッドを占有します。)

デスクトップ指向ディストリビューションでは、「工場基本」プロセス制限は32768であるか、企業指向ディストリビューションではそれ以上になる可能性があります。最新の64ビットシステムでは/etc/sysctl.conf

(カーネルバージョン3.10.25の最大値は4194304で、その後はさらに増加する可能性があります。)

ゾンビプロセスはすでに死んでいるため削除できません。あなたがしなければならないことは邪悪なゾンビマスターを殺して、つまり、ゾンビプロセスの親プロセスは、ゾンビプロセスが存在するということは、親プロセスが正しく機能しないことを意味するからです。不注意な親プロセスが終了すると、ゾンビプロセスはプロセス#1によって採用され、通常はすぐにクリーンアップされます。

親プロセスは、子が死亡したという通知を受け取るときは常に子の戻りコードを確認する必要があります。または、起動時に子が所有権を放棄する準備をし、プロセス#1(通常/sbin/init)がそれを採用できるようにする必要があります。プロセス#1には、親のない他のプロセスを採用し、死亡通知を処理する特別な責任があります。

関連情報