[pgsql-jp: 32754] Re: 自動起動時に『Segmentation fault』となり起動できません。

Takao Kato sirius @ jp.fujitsu.com
2004年 4月 13日 (火) 09:20:29 JST


おはようございます。加藤@川崎です。

> # su - postgres
> $ pg_ctl start
> $ pg_ctl status
> $ pg_ctl stop
> も確認いたしましたが
> 問題なく動作いたしております。

(1)ログインした状態で、コマンド投入した時には稼働する


> 標準でインストールされる
> /etc/rc.d/init.d/postgresql
> をntsysvコマンドにより、起動するようにし
> サーバーを再起動いたしますと
> /var/log/messageに
> Segmentation fault
> と記述され起動いたしません。

(2)起動スクリプト(その1)でコマンド投入した時には稼働しない


> また、startup-scriptの中にある
> linux
> の中をインストール環境にあうように編集し
> /etc/rc.d/init.d/postgresql
> とし、再起動いたしましたが
> やはり
> Segmentation fault
> となり、起動いたしません。

(3)起動スクリプト(その2)でコマンド投入した時も稼働しない


と言うことですよね。違いは、

(1)は    ログイン後 に実行
(2)(3)は 起動処理時 に実行

だと思います。このパターンでよく起こる(はまる)のが、環境変数の違い
ですよね。

例えば(2)あるいは(3)で利用したスクリプトで定義されている環境変数を
いったん落して(コメントアウト)から、(1)を実行した時と同じ状態で、
スクリプトを実行し、PostgreSQLが起動するかを確認するのが簡単だと思
います。

もし事象が発生しないのであれば、スクリプト内で定義している環境変数
が間違っている or 変な場所を示していて、ライブラリが不整合を起こし
ているのだと思います。対処療法としては、実行可能な時の環境変数を確
認して起動スクリプト内の環境変数に設定すれば良いでしょう。


8< -- 8= -- 8< -- 8= -- 8< -- 8= -- 8< -- 8= -- 8< -- 8= -- 8< -- 8=
と、そんなことは無いと思いますが、ここまで書いてある内容が理解でき
ない場合は、Linux/Unix関連の本を読んで勉強してください。
=8 -- >8 -- =8 -- >8 -- =8 -- >8 -- =8 -- >8 -- =8 -- >8 -- =8 -- >8


それでは
-------------------------------------------------------------
加藤@川崎



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