computer.unix - UNIX

UNIX 関連の情報交換ボード

#49: PostgreSQL 起動問題
Date: 2000/07/22 20:24:24 Sat Author: GOO・豪 (tnet0077)
Parent Article: #41: PostgreSQL
Child Article: #50: PostgreSQL 起動問題

うちの場合、FreeBSD の入ったマシンを切ることがあるんですが、
マシン起動時に自動的に postmaster (PostgreSQL deamon) を
起動させようとして問題がでました。

環境はここのインストールの手引きの通りにした状態です。
特に環境変数は重要ですので、設定しておいてください。
http://www.sra.co.jp/people/t-ishii/PostgreSQL/7.0/

コントロールスクリプトの pg_ctl をのぞいてみると、
/tmp/.s.PGSQL.5432 と言うソケットと
/usr/local/pgsql/data/postmaster.pid と言うプロセス ID を
保存しているファイルを参照しているようです。

pg_ctl -w stop で終了させた場合はきちんと無くなっているようなんですが、
pg_ctl は postgres でログインしないと実行できないし、
電源を切りたいときにいちいちそんなことは面倒です。
そこで、マシン起動時に上の二つのファイルがあったら消すようにしてみました。
結果的にはそれでうまくいったので /usr/local/etc/rc.d に置く
自動実行シェルスクリプトを載せます。

#!/bin/sh
if [ -x /tmp/.s.PGSQL.5432 ];then
  rm /tmp/.s.PGSQL.5432
fi
if [ -x /usr/local/pgsql/data/postmaster.pid ];then
  rm /usr/local/pgsql/data/postmaster.pid
fi
su postgres -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start"
su postgres -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data status"

そういえば一番下のステータスを表示させる部分はモニターのつながっていない
うちのマシンには必要ないですね(^^; 起動時に -S -i オプションがないのは
/usr/local/pgsql/data/postmaster.opts.default に書いてあるためです。

今まではいきなり電源切っても問題は出ていませんでしたが、
PostgreSQL 7.0 はファイルの存在で起動状態を調べるという仕様らしいので、
問題が出てきたんですね。とりあえず参考までに。
GOO
E-Mail: goo_n@hotmail.com
WWW: http://homepage2.nifty.com/~goo/
GTET 置き場

■ この記事のコメントを書く

■ この書き込みを削除/復活します(投稿者のみ可)
■ この書き込み近辺の一覧表示へ

【最新20記事 [一覧] [ツリー] [一括] 】 【最新の記事は 89 番です.】
【前の20記事 [一覧] [ツリー] [一括] 【次の20記事 [一覧] [ツリー] [一括]
番から 番までの記事を
UNIX に新しい記事を

T-Net ■ メインページ