※ ChatGPTを利用し、要約された質問です(原文:RedHat ES4でPostgreSQLを自動起動したい)
RedHat ES4でPostgreSQLを自動起動したい
RedHat ES4でPostgreSQLを自動起動したい
RedHatにPostgreSQL8.2.3をインストールしました。
インストール自体は他のディストリビューションでも何回も行っているので
特に問題なく終了しました。しかし自動起動がうまくいきません。
/etc/init.d/postgresqlを以下の内容で作成しました。
----- ここから -----
#!/bin/sh
# chkconfig: - 87 13
# description: PostgreSQL8.2
# processname: postmaster
# pidfile: /var/run/postgresql.pid
pidfile=/var/run/postgresql.pid
. /etc/init.d/functions
case "$1" in
start)
su - postgres -c "pg_ctl start"
touch $pidfile
;;
stop)
su - postgres -c "pg_ctl stop -m fast"
rm -f $pidfile
;;
restart)
su - postgres -c "pg_ctl stop -m fast"
su - postgres -c "pg_ctl start"
;;
*)
echo "Usage: /etc/rc.d/init.d/postgresql {start|stop}"
esac
exit 0
----- ここまで -----
このスクリプト自体はrootにて
# /etc/init.d/postgresql start
できちんとDBが起動する事は確認しています。これを以下のようにして
自動起動の設定を行いました。
# chmod 755 /etc/init.d/postgresql
# chkconfig --add postgresql
# chkconfig --level 35 postgresql on
# chkconfig --level 06 postgresql off
問題はここからで、この状態で再起動を行うと、起動時にpostgresqlを
実行するところでとまってしまうのです。pidファイルなどゴミが無い事は
確認済みなのですが・・・その状態でもネットワークログインは出来るので
プロセスを確認すると以下のようなプロセスが残った状態でとまっていました。
root 2765 0.0 0.0 5920 760 ? S 00:47 0:00 initlog -q -c /etc/rc5.d/S87postgresql start
root 2766 0.0 0.0 6916 1336 ? S 00:47 0:00 /bin/sh /etc/rc5.d/S87postgresql start
root 2769 0.0 0.0 6124 1276 ? S 00:47 0:00 su - postgres -c pg_ctl start
この状態で
# kill 2765 2766 2769
とすると起動がまた再開されるので、PostgreSQLの起動時にとまっている事は
明らかです。
いったい何が原因なのか、さっぱりわかりません。
どなたかヒントだけでもいただけたら幸いです。
よろしくお願いします。
お礼
理由はSELinuxが有効になっていたためでした。 /etc/selinux/configを書き換えて再起動したところ 無事起動できるようになりました。 contrib/start-scripts/linuxに起動スクリプトはちゃんと よういされてたんですね。知りませんでした。 情報、ありがとうございました。