In article <AYx6b.55$SG6.53@news1.dion.ne.jp>,
 "=?iso-2022-jp?B?GyRCS0xbaklwO1YbKEI=?=" <takeh@m6.dion.ne.jp> writes:

> "Hideo "Sir MaNMOS" Morishita" <manmos@stellar.co.jp> wrote in message
> news:squ7k4qds0p.fsf@stellar.co.jp...
> >
> > 親プロセスと子プロセスがあるプログラムで、子プロセスを生成後、親プロセ
> > スでエラーを発見して、子プロセスにSIGTERMを送って自分は終了するってプ
> > ログラムで、なぜか子供が死なない。
> >
> この流れだと、子プロセスにSIGTERMを送った後、子プロセスから
> のSIGCHILD受けてから、親が死ぬようにしないと、子はゾンビに
> なる気がするのですが、どうでしょう?ちがったらすいません。

違います。子供はorphanになるので、initが看取ってくれます。そうでなかっ
たらdaemonは全部zombieに…(unix屋でない人が聞いたら、何て恐ろしい会話)

あと、SYS V系だとSIGCHLDをignoreしておくとwaitする必要はないのです。た
しか、LINUXもそうですよね。

> > で、gdbでアタッチしてみると、なんと、forkの最中でsignalハンドラに入っ
> > て、その中のsyslog(正確にはvsyslog)でブロックされてしまって止っている。
> >
> これは、gdbのオプションで、子プロセスも追跡するように設定
> しとかないと、親が子を作ったところまでで止まって見えるという
> はなしではないでしょうか?もしくは、親プロセスから、子プロセス
> に対象の切り替えをしてなかったとか。

gdbのマニュアルのattachの項、または、起動オプションの項を読んでみてく
ださい。動作中のプログラムを取っ捕まえる方法が載っています。

#SunONE Studioを手にいれてみましたがdbxもattachできるようになったんで
#すね。

-- 
   ___     わしは、山吹色のかすてーらが大好きでのぅ
 [[o o]]            ふぉっふぉっふぉ
   'J'     森下 お代官様 MaNMOS 英夫@ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D  02 74 87 52 7C B7 39 37