68user's page 掲示板

Prev< No. 2769〜2774> Next  [最新発言に戻る] [過去ログ一覧]
No. 2769 # 68user 2002/06/18 (火) 21:26:29
>>2767 ユウ
> $ postmasterでは、
引数なしで実行したのですか? データベースクラスタの場所はどうやって
指定しているのですか? 環境変数 PGDATA?

> DEBUG ...
この ... というのは省略したのですか? 本当に ... と表示されたのですか?

> その後エラーメッセージも何も出なくて、反応が無くなってしまいます。

それはフォアグラウンドで起動しているだけで、正常起動じゃないんでしょうか?

        http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/postmaster-start.html
        > サーバを起動する一番簡単な方法例は、
        >  postmaster -D /usr/local/pgsql/data
        > となり、サーバをフォアグラウンドで走らせます。
        > バックグランドでpostmasterを起動する には通常のシェルの構文を使います。

また、
    % sh -x pg_ctl start
として、pg_ctl 内で実行される postmaster の引数を確認するのも
よいでしょう。


>>2766 バクモン
> ※2:ps -p [プロセスID]でHITしなかった場合、リターンコードは必ず
> 0以外となる。逆にHITした場合は、必ず0となる。
> >>このハンドリングは正しいのか、ちょっと自信なし。
問題ないと思いますが、それでも心配なら
    % ps -p [pid] | grep スクリプト名
などなど。

No. 2770 # せと [E-mail] 2002/06/19 (水) 09:55:45
はじめまして。
ネットワークプログラミングの知識を参考にさせてもらっています。
で、ひとつ作りたいプログラムがあって質問させてください。
現在PERLを利用して、TERATERMのマクロのようにプログラムの出力結果を分析して、
次のバッチの投入のような監視?ツールを作りたいと思っています。
で、ソケットをつかってポート23にアクセスしに行くのですが、
固まってしまいます。ポート80や110にはここのサイトの見本をまねて
アクセスすることは出来るのですが・・・。
shでやるというのも考えられるのですが、suではパスワードを聞いてきますし、
別のアプリ実行しても制御が完全にアプリ側に移るんで無理ですよね?

ポート23にアクセスして結果をやり取りするにはどうしたらよいのでしょうか?
どなたかお分かりでしたらヒントをお願いします。

No. 2771 # ユウ 2002/06/19 (水) 11:26:13
>>2769 68user
お返事ありがとうございます。
質問の書き方が下手で、申し訳がありません。
PGDATA=/usr/local/pgsql/dataを設定していて
$ postmaster
は引数なしで実行しています。(pg_ctl startもそうです)
DEBUG...はDEBUGのあとの出力を省略させていただきました。
UNIXに関しても、パソコンに関しても本当に初心者で、何がどうなってるのかわからない状態なのですが、長くなりますが詳しく書かせていただきます。
$pg_ctl startを実行すると
postmaster successfully started
と出力されたあとに
DEBUG...(省略しています)と5行でて、そこでreturnキーを押下すると
[postgres@AAAServer postgres]$
と次のコマンド入力が可能になります。
しかし
$ postmasterを実行しても
postmaster successfully started
というメッセージは出ないで、
DEBUG...(省略しています)と5行でてreturnキーを押下しても
[postgres@AAAServer postgres]$
とはならず、改行されるだけです。
(以上は、openblocks,redhat両方共の環境です)

いろいろ試してみると、
redhat環境では、/usr/local/pgsql/data/postgresql.confに
silent_mode = on
tcpip_socket = on
syslog = 2
と追記して
$ postmasterを実行すると
DEBUG...(省略します)とは出力されないで、
[postgres@AAAServer postgres]$
となり、postgresqlは起動しました。
そこで、openblocksでpostgres.confを上記のように変更して
$ postmasterを実行しました。すると
FATAL 1: 'silent' is not valid option name
とエラーが帰ってきました。
$pg_ctl startで実行した結果も、
postmaster successfully started
と出力された後に、同様のエラーが帰ってきました。
(postgres.confの変更内容のsilentをコメント化したらsilentの下に追記した、tcpip_socketで同様のエラーが起きます。)

申し訳がありませんが、ご教授ください。

No. 2772 # ユウ 2002/06/19 (水) 12:04:39
お返事ありがとうございます。
質問の書き方が下手で、申し訳がありません。
PGDATA=/usr/local/pgsql/dataを設定していて
$ postmaster
は引数なしで実行しています。(pg_ctl startもそうです)
DEBUG...はDEBUGのあとの出力を省略させていただきました。
UNIXに関しても、パソコンに関しても本当に初心者で、何がどうなってるのかわからない状態なのですが、長くなりますが詳しく書かせていただきます。
$pg_ctl startを実行すると
postmaster successfully started
と出力されたあとに
DEBUG...(省略しています)と5行でて、そこでreturnキーを押下すると
[postgres@AAAServer postgres]$
と次のコマンド入力が可能になります。
しかし
$ postmasterを実行しても
postmaster successfully started
というメッセージは出ないで、
DEBUG...(省略しています)と5行でてreturnキーを押下しても
[postgres@AAAServer postgres]$
とはならず、改行されるだけです。
(以上は、openblocks,redhat両方共の環境です)

いろいろ試してみると、
redhat環境では、/usr/local/pgsql/data/postgresql.confに
silent_mode = on
tcpip_socket = on
syslog = 2
と追記して
$ postmasterを実行すると
DEBUG...(省略します)とは出力されないで、
[postgres@AAAServer postgres]$
となり、postgresqlは起動しました。
そこで、openblocksでpostgres.confを上記のように変更して
$ postmasterを実行しました。すると
FATAL 1: 'silent' is not valid option name
とエラーが帰ってきました。
$pg_ctl startで実行した結果も、
postmaster successfully started
と出力された後に、同様のエラーが帰ってきました。
(postgres.confの変更内容のsilentをコメント化したらsilentの下に追記した、tcpip_socketで同様のエラーが起きます。)

申し訳がありませんが、ご教授ください。

No. 2773 # 68user 2002/06/19 (水) 13:48:40
>>2770 せと
> で、ソケットをつかってポート23にアクセスしに行くのですが、
> 固まってしまいます。
要は telnet クライアントを作りたいと。

接続後、telnet プロトコルに従ってネゴシエーションをする
必要があります。詳細は http://www.faqs.org/rfcs/rfc318.html
perl のモジュールを使うなら Net::Telnet がよいでしょう。

ただし、telnet クライアントができても、文字の送信/文字の
受信が可能になるだけです。エラー発生の判断などはやはり
プログラム側で行わなくてはいけません。

というわけで、素直に
> プログラムの出力結果を分析して、次のバッチの投入のような監視?ツール
を行うスクリプトを作った方がよいでしょう。

> suではパスワードを聞いてきますし、
> 別のアプリ実行しても制御が完全にアプリ側に移るんで無理ですよね?
危惧しておられることがよくわからないのですが、普通はスクリプトなどを
書けば実現可能です。


>>2772 ユウ
> $ postmasterを実行しても
> postmaster successfully started
> というメッセージは出ないで、
> DEBUG...(省略しています)と5行でてreturnキーを押下しても
> [postgres@AAAServer postgres]$
> とはならず、改行されるだけです。
それはそれで正常です。キーの入力をそのアプリが奪うような状況を
「フォアグラウンドで動作している」と言います。逆に、アプリが
裏で動いているような状況を「バックグラウンドで動作している」
と言います。
    http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/postmaster-start.html
にある通り、postmaster を実行すると、単にフォアグラウンドで
動くという仕様になっているだけです。postmaster を実行した後、
別ウィンドウで psql を実行すると、ちゃんと接続できるはずです。

> $ postmasterを実行しても
> postmaster successfully started
> というメッセージは出ないで、
postmaster successfully started という文字列を表示をしているのは
pg_ctl だからです。

postmaster をバックグラウンドで動かすには、
    - postmaster & として起動する。
    - postgresql.conf を修正して silent_mode=true とする。
    - postmaster -S とする。
    - postmaster -c silent_mode=true とする。
などの方法があります (true と on は同じ)。全てマニュアル
    http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/runtime-config.html
に書いてあります。

> FATAL 1: 'silent' is not valid option name
'silent_mode' is ... ならわかりますが、`silent' is ... となるということは、
postgresql.conf に
    silent=true
などと書いていませんか?

> tcpip_socketで同様のエラーが起きます。
ということは、その上にある行がおかしい可能性もあります。

とにかく、まずは postgresql.conf への追加時に修正ミスをしていないかを
疑うべきでしょう。

あとは、OpenBlockS にインストールされている PostgreSQL のバージョンと
RedHat にインストールされている PostgreSQL のバージョンが違うとか。

No. 2774 # ユウ 2002/06/19 (水) 14:38:00
>>2773 68user
ご指摘の通りでした。
silent_mode,tcpip_socketにのエラーは直りましたが、syslogでエラーが出る状態です。なぜか解らないですけど、redhatで成功しているpostgresql.confをコピーしてきます。
ありがとうございました。

Prev< No. 2769〜2774> Next  [最新発言に戻る] [過去ログ一覧]