デーモンとゾンビプロセスの関係
■ このスレッドは過去ログ倉庫に格納されています
0001闇夜ll
NGNGゾンビプロセスは、ユーザが殺したのに何故か殺しきれなくて
どこかでウロウロと彷徨ってしまっているプロセス。
本とかでは休止プロセスというものを目にするんですがどちら
のことを言っているのですか。
よければもう少し詳しい説明をしてもらえませんか。
デーモン,ゾンビ,休止。なかなかユニークな呼び名で気に入ってます。
0002>1
NGNG>ユーザが殺したのに何故か殺しきれなくて
ではなく親プロセスが起動した子プロセスを正しくwaitして
いないかもしくはwaitする前に親プロセスが異常終了した際
に発生します。
デーモンプロセスと呼ばれるものももちろん他のプロセスから
起動されますが親プロセスのwaitをまたず自分自身がプロセス
リーダになることにより独立したサーバープロセスとして動く
といったところがゾンビプロセスとの違いではないでしょうか。
↑
これは私のかなり勝手な解釈(というかいつもデーモンプロセス
を作成する時に使っている方法)ですので突っ込みをお願いします。
>all
0003ほげらー
NGNGデーモン:機能している。
0004>1
NGNGプロセスの切り替えがカーネルによって行われ、スワップアウト
された状態が休止状態、・・・じゃなかったかの。
0005あてずっぽうくん
NGNGzombie 状態は子プロセスが終了してから、親に wait で
回収されるまでの間の状態だと思います。例えば fork
したあと、子プロセスはすぐ exit し、親は 10 秒間
sleep してから wait すると、sleep している 10 秒の
あいだ、子プロセスは zombie です。
子プロセスが終了するより先に親プロセスが終了した場合、
みなしごになった子プロセスは init に引き取られます。
そうなった場合には init が面倒をみてくれるので zombie
にはならないでしょう(daemon がこれを使って自分を
バックグラウンドに移していますよね)。
daemon がセッションリーダーになるのは zombie の回避
とはまた別の話だと思います(独立するため、というのは
おっしゃるとおりですが)。
0006>5
NGNG>回収されるまでの間の状態だと思います。`
そうですね。今手元のプロセス状態遷移図で確認しましたが
おっしゃる通りです。プロセスがexitして消滅する間の一つ
の遷移状態ですね。違っていたらご指摘お願いします。
>daemon がセッションリーダーになるのは zombie の回避
>とはまた別の話だと思います(独立するため、というのは
>おっしゃるとおりですが)。
独自デーモンプロセスを作る際にはプロセスグループの変更
及びioctl()による制御端末からの切り離しを行っています
けど考え方としては間違っていないですよね?
0007あてずっぽうくん
NGNG> 及びioctl()による制御端末からの切り離しを行っています
> けど考え方としては間違っていないですよね?
正しいとおもいます。
ちょうど良いタイミングで fj.unix に daemon 関連の記事が
あって summary が投稿されてましたので貼っときます。
http://news.dinf.ne.jp/news/fj/unix/msg00656.html
00082
NGNG今newsの内容確認しました。ありがとうございます!!
■ このスレッドは過去ログ倉庫に格納されています