- PR -

rsh を利用してPostgresを起動するとプロンプトが返らない

1
投稿者投稿内容
すすむ
会議室デビュー日: 2003/11/12
投稿数: 9
投稿日時: 2005-06-28 18:30
Solaris9 Postgres7.3.4 を使用しています。

***************************************
setenv POSTGRES_HOME /usr/local/pgsql
setenv PGLIB $POSTGRES_HOME/lib
setenv PGDATA $POSTGRES_HOME/data
setenv MANPATH $POSTGRES_HOME/man
setenv LD_LIBRARY_PATH $PGLIB

su - postgres -c "$POSTGRES_HOME/bin/pg_ctl stop -D $PGDATA"
su - postgres -c "$POSTGRES_HOME/bin/pg_ctl start -w -D $PGDATA"
***************************************
上記のようなCシェルスクリプトを作成して実行すると、
まったく問題なくPostgresの停止・起動が行われます。
実行後はシェルが終了しプロンプト(#)に戻ってきます。

これを別サーバ(Solaris9)から rshコマンドで実行すると、
Postgresの停止・起動は正常に行われているようですが、
いつまでたってもプロンプトが戻ってきません。(「ctrl-Z」しかない・・・)

プロンプトが戻ってこない原因や解決策がありましたら
お教えいただけませんでしょうか?
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2005-06-28 18:38
どっかに exec 入れるかな・・・(ただの勘です)
すすむ
会議室デビュー日: 2003/11/12
投稿数: 9
投稿日時: 2005-06-28 19:08
早速の回答ありがとうございます。

Cシェルスクリプトの最終行に exec date を追加して再度実行してみました。

残念ながら、、、
日付は表示されるもののプロンプトは戻ってきませんでした(涙)
ついでに exit も試してみましたが、これまたダメでした。

Postgresの起動時に問題があるようなのですが、
原因等わかりましたら引続きお教えください。

実行結果を掲載します。(1部編集しています)
***************************************
Sun Microsystems Inc. SunOS 5.9 Generic May 2002
waiting for postmaster to shut down......
done
postmaster successfully shut down

Sun Microsystems Inc. SunOS 5.9 Generic May 2002
waiting for postmaster to start....
LOG: database system was shut down at 2005-06-28 18:56:44 JST
LOG: checkpoint record is at E/D2962EA8
LOG: redo record is at E/D2962EA8; undo record is at 0/0; shutdown TRUE
LOG: next transaction id: 48227447; next oid: 6857663
LOG: database system is ready
done
postmaster successfully started

Tue Jun 28 18:56:46 JST 2005
***************************************
すすむ
会議室デビュー日: 2003/11/12
投稿数: 9
投稿日時: 2005-06-29 19:40
PostgreSQL7.3.4 のリファレンスマニュアル(pg_ctlのstartモードについて)に
下記の記述を見つけました。

***************************************
postmaster は出力を (バックグラウンドから) 制御ターミナルに書き出すので、
シェルのプロセスグループから切り離せません。
***************************************
ちょっと意味が良く解からなかったのですが・・・(笑)

su - postgres -c "$POSTGRES_HOME/bin/pg_ctl start -w -D $PGDATA -l pgsql.log"

と、起動のログをファイルに出力するようにしたところ、
rsh で実行した場合でもちゃんとプロンプトが戻ってくるようになりました。

もう少々確認作業を行ってみたいと思います。
「こんな方法はダメ(邪道)だよ!」とかありましたらコメント頂けると幸いです。
1

スキルアップ/キャリアアップ(JOB@IT)