1012345678910111213141516171819202122232425262728293012

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【 --/--/-- (--) 】 スポンサー広告 | TB(-) | CM(-)

PostgreSQLの自動起動設定

手動でPostgreSQL 9.3を起動できるところまでやって安心してしまったので、今度はシステム起動時に自動的にPostgreSQLサーバープロセスも起動されるように設定する。

/etc/rc.dの下に、S??postgresってファイルを書けばいいのかなと思いきや、マニュアルを見ると、/etc/rc.d/rc.localってファイルを編集すればよいと書いてある。
このrc.localって設定ファイル、大昔のSVR4 Unixの時代から存在してたっけ?初めて触るけどまぁいいや。/etc/rc?.dディレクトリ下を一式処理し終えてから、最後に起動されるらしいので、まぁ他のrc?.dディレクトリ下にS99って書くのと同じか。

でも、サーバープロセス終了の方は、ちゃんとパッケージインストール時にK36postgresql-9.3って形で登録されてるんだよな。よくわからん。


[root@localhost log]# cd /etc/rc.d
[root@localhost rc.d]# find . -name 'K*post*' 2>/dev/null
./rc1.d/K30postfix
./rc1.d/K36postgresql-9.3
./rc0.d/K30postfix
./rc0.d/K36postgresql-9.3
./rc0.d/K75udev-post
./rc2.d/K36postgresql-9.3
./rc3.d/K36postgresql-9.3
./rc5.d/K36postgresql-9.3
./rc4.d/K36postgresql-9.3
./rc6.d/K30postfix
./rc6.d/K36postgresql-9.3
./rc6.d/K75udev-post
[root@localhost rc.d]# find . -name 'S*post*' 2>/dev/null
./rc1.d/S26udev-post
./rc2.d/S26udev-post
./rc2.d/S80postfix
./rc3.d/S26udev-post
./rc3.d/S80postfix
./rc5.d/S26udev-post
./rc5.d/S80postfix
./rc4.d/S26udev-post
./rc4.d/S80postfix
[root@localhost rc.d]# cat rc.local #suしないと、rootだと起動拒否される
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
su -l postgres -c "/usr/pgsql-9.3/bin/pg_ctl start -l /usr/local/pgsql/log/`date +'%Y%m%d_%H%M%S'`.log -D /usr/local/pgsql/data"


システムを再起動し、サーバープロセスが起動されている事を確認する。
ちゃんと立ち上がっているようだ。安心安心。


[root@localhost rc.d]# pstree
init----wqabrtd
+-acpid
+-atd
+-auditdqqq{auditd}
+-crond
+-dbus-daemon---{dbus-daemon}
+-irqbalance
+-master----pickup
| +--mgr
+-6*[mingetty]
+-postgres---6*[postgres]
+-rsyslogd---3*[{rsyslogd}]
+-sshd---sshd---bash---pstree
+-udevd---2*[udevd]
[root@localhost rc.d]# ps -ef | grep postgres
postgres 1421 1 0 04:58 ? 00:00:00 /usr/pgsql-9.3/bin/postgres -D /usr/local/pgsql/data
postgres 1442 1421 0 04:58 ? 00:00:00 postgres: logger process
postgres 1444 1421 0 04:58 ? 00:00:00 postgres: checkpointer process
postgres 1445 1421 0 04:58 ? 00:00:00 postgres: writer process
postgres 1446 1421 0 04:58 ? 00:00:00 postgres: wal writer process
postgres 1447 1421 0 04:58 ? 00:00:00 postgres: autovacuum launcher process
postgres 1448 1421 0 04:58 ? 00:00:00 postgres: stats collector process
root 1497 1456 0 05:04 pts/0 00:00:00 grep postgres
[root@localhost rc.d]# cd /usr/local/pgsql/log
[root@localhost log]# ls -trl
total 12
-rw-r--r--. 1 postgres postgres 180 Jan 29 05:33 logfile_1strun
-rw-------. 1 postgres postgres 180 Jan 31 04:55 20140131_045531.log
-rw-------. 1 postgres postgres 180 Jan 31 04:58 20140131_045850.log
[root@localhost log]# cat 20140131_045850.log
< 2014-01-31 04:58:51.375 PST >LOG: redirecting log output to logging collector process
< 2014-01-31 04:58:51.375 PST >HINT: Future log output will appear in directory "pg_log".


ntpで仮想マシンのクロックを調整できてないので、ファイルのタイムスタンプがかなりおかしな事になってる。1週間近くずれた日時で作成された。これも直さなきゃ。



・参考リンク
17.3. データベースサーバの起動--PostgreSQL 9.3.2文書
スポンサーサイト
【 2014/02/07 (Fri) 】 データベース PostgreSQL | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

Ed U Song

Author:Ed U Song
社内ノマドなエンジニア。
仕事で触れる機会のないものを自宅環境作って実験。

スポンサーリンク
最新コメント
最新トラックバック
検索フォーム


                                         
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。