自動起動を 試みてみよう ” /usr/local/src/postgresql/postgresql-8.1.1/contrib/start-scripts” の 中 には” PostgreSQL.darwin* StartupParameters.plist.darwin freebsd linux” が あるが” linux”の ものは ”This is an example of a start/stop script for SysV-style init” とのことなので ”rc.local”に 追記してみよう
# pwd /etc/rc.d # cp rc.local 010_rc.local # vi rc.local # diff -s rc.local 010_rc.local 70d69 < su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"
にゃんたろう 用 備忘録 ”-cオプションで特定コマンドのみを実行させるこ
とも可能だ。” 要するに ”su - postgres” で ”postgres”に なり 通常の
起動を 試みる 様に した。
注意 これは 正解では無い 暫定の 起動 とする。
通常は 停止時には あまり 注目しないのであるが postgres の 場合 何か 動いてると 不味いので ”rc.6”に 追記 した
# cp rc.6 011_rc.6 # vi rc.6 # diff -s rc.6 011_rc.6 13,16d12 < # add postgresql stop < su - postgres -c "/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data -m fast" < sleep 3 <
注意 これも 正解では無い 暫定の 停止処理 とする。
色々 捜したが 良いのが、見付からなかったので 上記の 様に した。以下参 # 考に したものの 抜粋
まず最初に インストールする時の ディレクトリの 中の
# pwd /usr/local/src/postgresql/postgresql-8.1.1/contrib/start-scriptsにある
PostgreSQL boot time startup script for FreeBSD. Copy this file to case $1 in start) su -l $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo -n ' postgresql' ;; stop) su -l $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" ;;
su - postgres -c "pg_ctl -o \"-S -i\" start" su postgres -c "/usr/local/pgsql/bin/pg_ctl start" su -l postgres -c 'pg_ctl start -D /usr/local/pgsql/data -l logfile' su postgres -c "/usr/local/pgsql/bin/postmaster -i -S -D /usr/local/pgsql/data" /usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data
これらは もうすこし ”postgresql”を 理解してからでないと 使えないの で ”postgresql” の ”version”他の 組合せの ”aparche,php”等 との 連携 が 今の にゃんたろうには 理解出来ていないので あくまで 参考 ということに したい。
rc.local と rc.6 を 変更した物で 起動停止を 行って 見よう
# cd /home/postgres/ # rm logfile # pwd /home/postgres
まず 今までの logfile を 削除
# cd /var/log # :>messages # :>syslog # pwd /var/log
再起動の為 余分な log 削除しておいて
# date >reboot && shutdown -r now
再起動の後
# cat /var/log/reboot Wed Dec 21 16:22:39 JST 2005 # cd /home/postgres/ # cat logfile LOG: database system was shut down at 2005-12-21 16:22:45 JST LOG: checkpoint record is at 0/33B06C LOG: redo record is at 0/33B06C; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 571; next OID: 24576 LOG: next MultiXactId: 1; next MultiXactOffset: 0 LOG: database system is ready LOG: transaction ID wrap limit is 2147484146, limited by database "postgres"
なにか 動いているかな?
# ps aux | grep postgres postgres 109 0.0 1.0 15300 2676 ? S 16:24 0:00 /usr/local/pgsql/ postgres 137 0.0 1.0 15312 2708 ? S 16:24 0:00 postgres: writer postgres 138 0.0 0.6 6088 1744 ? S 16:24 0:00 postgres: stats b postgres 139 0.0 0.7 5208 1860 ? S 16:24 0:00 postgres: stats c
# ps aux の 該当項目
postgres 109 0.0 1.0 15300 2676 ? S 16:24 0:00 \ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data postgres 137 0.0 1.0 15312 2708 ? S 16:24 0:00 postgres: writer process postgres 138 0.0 0.6 6088 1744 ? S 16:24 0:00 postgres: stats buffer process postgres 139 0.0 0.7 5208 1860 ? S 16:24 0:00 postgres: stats collector process
もうすこし 見てみよう
# cd /var/log # cat -n messages | grep post 3 Dec 21 16:22:45 lx su[388]: + console root-postgres 116 Dec 21 16:24:01 lx su[104]: + console root-postgres
/var/log/messages の 該当する部分は
Dec 21 16:22:45 lx su[388]: + console root-postgres Dec 21 16:24:01 lx su[104]: + console root-postgres
もう一度 再起動を かけてみる、今回は postgres の logfile は 其ままに しておいて
# :>messages # :>syslog # date >reboot && shutdown -r now
再再起動の後
動いてるものの確認
# ps aux | grep postgres | grep -v grep postgres 109 0.0 1.0 15300 2676 ? S 16:47 0:00 /usr/local/pgsql/ postgres 137 0.0 1.0 15312 2708 ? S 16:47 0:00 postgres: writer postgres 138 0.0 0.6 6088 1744 ? S 16:47 0:00 postgres: stats b postgres 139 0.0 0.7 5208 1860 ? S 16:47 0:00 postgres: stats c
/var/log/messages の 内容
# cat /var/log/messages | grep postgres Dec 21 16:46:12 lx su[319]: + console root-postgres Dec 21 16:47:38 lx su[104]: + console root-postgres # cat -n /var/log/messages | grep postgres 3 Dec 21 16:46:12 lx su[319]: + console root-postgres 116 Dec 21 16:47:38 lx su[104]: + console root-postgres
取り敢えず 時間関連
# cat /var/log/reboot Wed Dec 21 16:46:06 JST 2005
移動して postgres の logfile の 内容は ?
# cd /home/postgres/ # cat logfile LOG: database system was shut down at 2005-12-21 16:22:45 JST LOG: checkpoint record is at 0/33B06C LOG: redo record is at 0/33B06C; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 571; next OID: 24576 LOG: next MultiXactId: 1; next MultiXactOffset: 0 LOG: database system is ready LOG: transaction ID wrap limit is 2147484146, limited by database "postgres" LOG: received fast shutdown request LOG: shutting down LOG: database system is shut down LOG: database system was shut down at 2005-12-21 16:46:12 JST LOG: checkpoint record is at 0/33B0B0 LOG: redo record is at 0/33B0B0; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 571; next OID: 24576 LOG: next MultiXactId: 1; next MultiXactOffset: 0 LOG: database system is ready LOG: transaction ID wrap limit is 2147484146, limited by database "postgres"
暫定の 自動起動停止 運用は これで 行うとする 但し、logfile に ついて は あまり良くないので 見直しが 必要であろう 修行中は これで 進める まだ データー 1個 入れられないのだから??。
にゃんたろう 拝!
2005年12月21日 (水) 23:21:08 JST 作成
✈