2012年5月14日

[pgsql-jp: 41109] Re:pgpool.pid ファイルの削除タイミングとその条件について

石井さま

回答ありがとうございます。
早速確認してみます。

Tatsuo Ishii <ishii@xxxxx> wrote:

> 石井です。

>
> > kawahara と申します。
> >
> > RHEL 5
> > postgresSQL 8.3.7
> > pgpool? 2.2.2
> > のバージョンでデータベース環境を作成しております。
> >
> > 先日、UPSでシャットダウン後起動すると、pgpoolサービスが起動しません。
> > pgpoolのログを確認すると、以下の文字が。
> >
> > pid file found. is anothser pgpool(pid 実際は数値) is running?
> >
> > 確かに、pgpool.pid ファイルが存在し、ファイルに記載された数値は、
> > 上記ログに記載された数値。
> >
> > リネーム後pgpoolサービス起動すると、起動できました。
> >
> > pgpool.pid は、pgpoolサービス停止によりファイル削除されると
> > 推測しており、UPSシャットダウン時にpgpoolサービスが停止できていないと
> > 思われます。
> > 環境構築後3年経過しており、過去のシャットダウン時は
> > 発生しなかった現象です。
> >
> >
> > pgpool.pid ファイルが削除されるタイミングとその条件について、
> > 御教示いただけないでしょうか。
>
> このあたりはpgpoolの親プロセスが管理しています。
>
> pgpoolの親プロセスは、終了シグナル(SIGTERMなど)を受信すると、子プロセス
> にもそれを送信し、子プロセスの終了を待ちます。子プロセスは、終了シグナ
> ルの種類により動作が変わります。SIGTERMならば、クライアントからのセッショ
> ンが終了するまで待ちます。SIGINT, SIGQUIT ならばクライアントからのセッ
> ションの終了を待たずに終了します。
>
> つまり、pgpoolへの終了シグナルが SIGTERM でかつクライアントのセッション
> が残っている状態だと、pgpoolの親プロセスは子プロセスの終了を待ち続ける
> ので、pgpoolの親プロセスがpidファイルを削除する前にシステム全体が終了し
> てしまうことになります。
>
> このあたりはお使いのシステムのpgpool用のinitスクリプトの作り次第ですね。
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese: http://www.sraoss.co.jp


投稿者 xml-rpc : 2012年5月14日 04:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110573
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。