[pgcluster: 290] Re: pglbがpid ファイルを消さない

mitani mitani @ sraw.co.jp
2004年 5月 24日 (月) 14:23:07 JST


三谷@広島です.

> linuxとsolarisでsignalを受け取った後の
> 動作が違うということになるんでしょうか?
Solarisでの現象の確認と回避方法が分かりました.
# Solarisで使われる方が多いようですので,
# とうとう(Intel版ですが)Solarisを買ってしまいました.
# 嬉しいような悲しいような...

終了処理でシグナルを送った際,自分もそれで死んでしまっていたのが原因です.
で,自身のシグナルをignoreするように追加しました.

--- pglb/main.c 2004-05-24 11:25:34.000000000 +0900
+++ pglb.new/main.c 2004-05-24 14:06:30.000000000 +0900
@@ -344,6 +344,7 @@

    Child_Tbl->useFlag = DATA_END;
    signal(SIGCHLD,SIG_IGN);
+   signal(signal_args,SIG_IGN);
    kill (0,signal_args);
    while (wait(NULL) > 0 )
        ;

これでSolarisでも終了処理は最後まで実行されるようです.

=============================
三谷 篤<mitani @ sraw.co.jp>
=============================





pgcluster メーリングリストの案内