[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 メーリングリストの案内