- ベストアンサー
【SuSE】PostgreSQLの自動起動ができない
- SuSE LinuxでpostgreSQLの自動起動が設定できず困っています。
- postgreSQLのインストールはソースから行いましたが、自動起動スクリプトの設定がうまくいっていないようです。
- 現在Linuxの勉強中であり、情報不足かもしれませんが、質問に対する追加情報を提供します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SUSE と RedHat で起動スクリプトの構成が違っているようですね。 SUSE の設定ツール YaST の「システム」、「ランレベル・エディタ」 で起動設定するとどうなりますか。 # SUSE 知らなくて的外れだったようです。 # また /usr/local/pgsql/data/logfile にエラーメッセージが # 出力されているかもしれません。
その他の回答 (2)
- t-okura
- ベストアンサー率75% (253/335)
#/etc/init.d/postgresql start で起動するのでしたら、サーバの起動時に問題なく自動起動すると 思うのですが、 # /etc/init.d/rc3.d/S98postgresql start や # /etc/init.d/rc5.d/S98postgresql start でも起動するでしょうか。 また、サーバ起動時のコンソール画面や /var/log/messages に PostgreSQL の起動エラーに関するメッセージは出てないでしょうか。 あと考えられるのは、postgresql 起動スクリプトが環境変数を 参照していて、root で実行するときにだけ設定されていると いう場合です。
お礼
すみません!補足内容に抜けがありましたので、 お礼欄になってしまいましたが、お知らせいたします! ># /etc/init.d/rc3.d/S98postgresql start >や ># /etc/init.d/rc5.d/S98postgresql start >でも起動するでしょうか。 はい。起動しました。 また質問を締め切る時に、 改めてお礼を投稿させていただきます!
補足
再度、回答いただきましてありがとうございます! 頂きました回答にしたがって確認してみました。 >サーバ起動時のコンソール画面や/var/log/messages サーバの起動時のコンソール画面には「PostgreSQL」関連のメッセージは見当たりませんでした。 また、"/var/log/message" で「postgre」を 検索してみましたが、起動時刻周辺には見つかりませんでした。 >postgresql 起動スクリプトが環境変数を参照 おそらく環境変数を参照はしていないとは思うのですが、 起動スクリプトを念のため文末に掲載します。 (先頭行以外の "#" に始まる行は省きました) なお、文末の起動スクリプトは☆印の行で終了してしまう可能性が あると思います。そこで、その直前に echo "PostgreSQL" という命令を加えた上で再起動してみました。 しかし、やはり起動時のコンソールにも、"/var/log/message" にも 「PostgreSQL」が現れませんでした。関係ないでしょうか? 勉強不足でもうしわけありません。 私の方で、もう少し調べてみることにします。 何かアドバイスがありましたら、よろしくお願いいたします! ◆◇起動スクリプト開始◇◆ #! /bin/sh prefix=/usr/local/pgsql PGDATA="/usr/local/pgsql/data" PGUSER=postgres PGLOG="$PGDATA/logfile" PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON="$prefix/bin/postmaster" PGCTL="$prefix/bin/pg_ctl" set -e test -x $DAEMON || exit 0 …☆ case $1 in start) echo -n "Starting PostgreSQL: " su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; stop) echo -n "Stopping PostgreSQL: " su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" echo "ok" ;; restart) echo -n "Restarting PostgreSQL: " su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; reload) echo -n "Reload PostgreSQL: " su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" echo "ok" ;; status) su - $PGUSER -c "$PGCTL status -D '$PGDATA'" ;; *) # Print help echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2 exit 1 ;; esac exit 0 ◆◇起動スクリプト終了◇◆
- t-okura
- ベストアンサー率75% (253/335)
SuSE Linux は使ったことがありませんが、 /usr/local/src/postgresql-8.3.3/cntrib/start-script/linux を root で実行すると、postmaster は起動しますか
補足
すばやいご回答、大変ありがとうございます! そして返信が遅れてしまい、申し訳ありませんでした! コマンドで #/usr/local/src/postgresql-8.3.3/cntrib/start-script/linux start を実行してみましたが、「Permission denied」でした。 そのファイルのパーミッションを確認すると、 rootにも実行権限はない状態でした。 なお、そのファイルを (1) "/etc/init.d/" へコピーして (2)「postgresql」にリネームして (3)パーミッションで全員に実行権限を与えた ファイルを実行するコマンド #/etc/init.d/postgresql start だと起動できました!
お礼
>SUSE の設定ツール YaST の「システム」、 >「ランレベル・エディタ」 >で起動設定するとどうなりますか。 自動起動するようになりました! ご指摘どおり、自動起動しなかった状態で 「ランレベル・エディタ」を開いてみました。 ランレベル 3 と 5 のチェックボックスに チェックが入っていたので「やっぱりダメかな~」と 思って、念のため(?)チェックボックスのOFF/ONを 一度だけやって「ランレベル・エディタ」を閉じました。 その後、再起動してみると自動起動しました! "/etc/init.d" に起動スクリプトを配置して、 シンボリックリンクを作成するだけでなく、 他にも何か編集しないといけないファイル等が あったのでしょうか…?? いろいろ調べてみることにします! 何はともあれ、解決しました!! 長々とお付き合い下さり、本当にありがとうございました! P.S. 何か、コメント頂けるかもしれませんので、 もうしばらく締め切りにせず置いておきます!