[pgsql-jp: 26393] Ctrl-C でバックグラウンドの postmaster に SIGINT

Teraoka Yoshinori yteraoka @ dti.ad.jp
2002年 6月 17日 (月) 15:27:50 JST


寺岡です。

先日、なぜか postmaster が落ちてしまってはまってしまったので
報告しておきます。PostgreSQL の問題というよりは Sun の sh の
問題のような気はするのですが。

環境は Solaris8 SPARC, PostgreSQL 7.1.3 です。

で、shutdown したおぼえがないのに postmaster がいなくなってい
るのに気づいて syslog を確認すると、

DEBUG:  shutting down
DEBUG:  database system is shut down

と出力されていて誰も shutdown してないのになぜだ? となり、
pg_ctl に -l オプションを付けていたのでそのログファイルを見ると

Fast Shutdown request at ...

と出力されていて、kill コマンドを使ってないのに SIGINT が飛ぶ
っていうのは ^C くらいしかないのだが… と思って

# ./_S98postgres start
 ...(起動メッセージ)
# ps -ef | grep postmaster
 (起動されている。)
# ^C

とやると SIGINT で Fast Shutdown されてしまいました。
最初に postmaster がいなくなっているのに気づいた時もそのちょっと
前に ^C を打っていました。
_S98postgres はログファイルや PID ファイルを確認して
/usr/bin/su postgres -c "$PROG -D $PGDATA -w start -l $LOGFILE"
で起動するようになっています。$PROG は pg_ctl .
で、いろいろ _S98postgres や pg_ctl をいじってもみたのですが、
silent_mode = true で回避することができました。
silent_mode は名前からしてただログをはかないだけかと思っていたの
ですが制御端末を切り離すオプションだったのですね。
ただ syslog だけだと Fast Shutdown か Smart Shutdown か判らないん
ですよね。

この動作は solaris の root のデフォルトのシェル(/sbin/sh)で確認
しました。csh では起きませんでした。

以上、なにかのおやくに立てれば。

---
Teraoka Yoshinori yteraoka @ dti.ad.jp



pgsql-jp メーリングリストの案内