[pgsql-jp: 28923] Re: RedHat Linux Serviceconf への登録

Takao Kato sirius @ jp.fujitsu.com
2003年 2月 4日 (火) 15:02:02 JST


 加藤@川崎です。

最初にお断りしておきますがLinux使いではありません。_o_
# serviceconfってなんだ?(笑)

> 普通に考えれば、/etc/rc.d/init.d に、そのものずばりの、
> postgres という sh 形式のスクリプトをいじれば問題無いだろう
> と思って、
> 
>         # Check for older PGDATA location.
> if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d
>    /var/lib/pgsql/base/template1 ] then               
>    export PGDATA=/var/lib/pgsql
> else
>    export PGDATA=/var/lib/pgsql/data
> fi
> 
> を自分のロケーションに変えれば良いかと考えてました。

以下ばっさり略。

serviceconfの仕様を理解していないので「起動スクリプトは単体で動かすも
の」と言う考え方で以下続けます。まず、こう言うのをやるにはステップバイ
ステップで調べた結果を記載するのが基本となると思います。今回の事象であ
れば、

  1.書換えたスクリプト単独でpostmasterをデーモン起動できるか?
  2.起動実行ユーザ(=root)で起動できるか?
  3.システム起動時にpostmasterが実行されるか?

と僕なら順番に確認作業を行いますね。ちなみに1と2が同じように見えるかも
しれませんが、PGDATAなど定義したユーザからsuでrootに移行した場合には環
境変数引き継がれる(オプション無しの場合)ので1が動作しても2(telnetなど
でrootユーザとしてログインした場合)で動作しないと言うのは多々ある話で
す。

それとありえないとは思いますが、

  起動時ユーザが「postgres」だと思い込んでいて、そっちに環境変数定義し
  ていて「root」で起動されていた。

とか、

  cshの-fオプション(と同じ)で環境ファイルのロードを行わずに実行している。

とかも考えられますかね。そんなところではないですかね?
----
加藤@川崎
お便りは kato @ lantc.cs.fujitsu.co.jp まで



pgsql-jp メーリングリストの案内