01/05/31 04:18
>>97
だからシステムがおかしくなるよーってゆったじゃーん
解説しよう!(タイムボカンシリーズ風に)
fork() でプロセス生成します。
戻り値は子プロセス側は0、羽美の親プロセスの方はプロセスIDが
帰ってきます。
で、子プロセス側はwhileを抜けて終了するんだけど
親の死に目を見るまでは我慢するのでゾンビになります。
親は親でwhileを抜けないので子供を大量生産。
このときプロセスを生成してるからカーネルはプロセステーブルに
プロセス番号をメモっていきます。
で、そのテーブルは大きさが決まってるので(2.2.xなら1000くらい)
1000回くらいループしたらもう書く場所無いのでギブアップ。
(でもfork()は-1だかのエラーを返すので無限ループは続く)
プロセステーブルがいっぱいになるとプロセスが作れないので
lsもうてないしpsもうてない。当然killなんてもってのほか!