« 06.24 95円台に | ココ | 06.25 配当増えろー »

2007年6月25日

PostgreSQL自動起動失敗   このエントリーを含むはてなブックマーク 

Fedora core 5(FC5)、SELinux enforcingで、PostgreSQLをyumでなくコンパイルでインストールをしたとき、厄介な問題が…。SELinuxのラベル付けの問題は.teファイルと.fcファイルを作ることで何とかなるとしても、次の山がドメイン遷移。
httpd_sys_script_tがpostgresql_db_t, postgresql_tにアクセスしようとするもんだからエラーが起こる起こる。その問題が片付いた…と思って、再起動したら。

PostgreSQLがinit.dで自動起動しない。

もちろん、chkconfig --add postgres はしている。サービスがオフになっているなんていう、そんな間抜けなことはしない。
ソースのディレクトリにある自動起動スクリプト(/contrib/startup-scripts/linux)をコピーして、そのままそれを自動起動のスクリプトに使えるようになっているものの、それが使えない。

postgresqlの自動起動エラーについて(ref. Fedora JP 掲示板)

SELinuxがらみの問題で、Fedora core 4はスタートアップ時のスクリプトでsuコマンドを使用できないようです。
代わりにrunuserコマンドが用意されているので、これを使えば起動できます。

投稿者さんの使用しているスクリプトも、suコマンドでpostgresユーザ権限での起動を試みているため、Fedora core 4では失敗するわけです。

init.dスクリプト内ではsuコマンドをSELinux有効時に使うと遷移先タイプの入力を促されるため、そこで止まってしまうということらしい。ということで、該当箇所を修正して、再起動。…やっぱり起動せず。

/postgres/data/serverlogを見てみると、なぜか

LOG: 00000: invalid binary "/.../postgres/bin/postmaster"
FATAL: XX000: /.../postgres/bin/postmaster: could not locate my own executable path

というようなエラーが。なんだ? 00000って、エラーなしなんですが。そしてXX000は内部エラー。どうやらどうしようもないエラーのよう。もちろん、ソースからいじりなおせば動かせるとは思うが、今更そんなことをする余裕もない。それに、この現象はinit.dから動かしたときのみ発生する現象で、起動後にservice postgres start としたときには発生せずに普通に起動する。

どうやらSELinuxの問題であることは間違いなさそうなので、自動起動スクリプトに、起動コマンドを実行する前にsetenforce 0、起動後に、setenforce 1を。何とか解決。


前日の記事で96円、て書いてしまった。95円の間違いなんで、夢でも見てたと思って流してください。

By ただ at 22:37 カテゴリー ; mein Erbe , 仕事関係

« 06.24 95円台に | 06月の記事 | 06.25 配当増えろー »




トラックバック

このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/999

このリストは、次のエントリーを参照しています: PostgreSQL自動起動失敗:

» canadian pharmacy from canadian pharmacy
PinMarch: PostgreSQL自動起動失敗

トラックバック時刻: 2023年4月 1日 18:43