PostgreSQLをdaemontoolsで動かす

Ads

前提

既にスタンドアロンで動いてる状態での話とする。

runスクリプト

run スクリプトを以下のようにして /service に追加した。

#!/bin/sh
PG=/opt/pgsql73
rm -f "$PG/data/postmaster.pid"
rm -f "/tmp/.s.PGSQL.5432"
rm -f "/tmp/.s.PGSQL.5432.lock"
exec \
setuidgid postgres \
env - \
  PATH="$PG/bin" \
  PGLIB="$PG/lib" \
  PGDATA="$PG/data" \
  PGHOST="127.0.0.1" \
postmaster \
2>&1

pg_ctr と daemontools コマンドの対応

動作pg_ctrdaemontools
起動pg_ctr startsvc -u /service/postgresql/
終了pg_ctr stopsvc -d /service/postgresql/
再起動pg_ctr restartsvc -dx /service/postgresql/
設定ファイル再読み込みpg_ctr reloadsvc -h /service/postgresql/
ステータス確認pg_ctr statussvstat /service/postgresql/
強制終了svc -kd /service/postgresql/
強制再起動svc -kdx /service/postgresql/

確実にコロスには

pg_ctr では DB へ接続中のユーザが居る場合は、 その接続中のプログラムが切断しない限りは結局止めることは出来ないみたい (pid を探して kill -9 pid ってするしかない)。 しかし、daemontools では以下のように簡単に KILL シグナルを送れるので便利。

svc -k /service/postgresql

逆に daemontools だと一度殺してもすぐに復活するので、強制 stop 相当のことをするには以下のようにする。

svc -kd /service/postgresql

コメント

  • init スクリプトみたいな見通しの悪さ(?)みたいなのが無いから daemontools 好きだ。 -- KaWaZ 2003-08-04 (月) 17:16:39
  • daemontools 化が出来たら既存の起動スクリプトは止めるべし。 -- KaWaZ 2003-08-04 (月) 17:21:57

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-07-21 (月) 12:21:14 (3797d)