[pgcluster: 290] Re: pglbがpid ファイルを消さない
mitani
pgcluster@ml.postgresql.jp
Mon, 24 May 2004 14:23:07 +0900
三谷@広島です.
> 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>
=============================