書式
proxymngr [-config filename] [-timeout seconds] [-retries #] [-verbose]説明
プロキシマネージャ(proxymngr)の仕事は xfindproxy(または同様のクライア ント)からのリクエストを解決し、適切なときに新しいプロキシを起動し、利 用可能な全てのプロキシサービスを全て監視することである。 プロキシマネージャは、既にあるプロキシをできる限り再利用しようとする。プロキシマネージャが扱うプロキシには2つのタイプ、つまり管理プロ キシと非管理プロキシがある。
管理 プロキシは「必要とされたときに」プロキシサーバが起動するプ ロキシである。
一方非管理 プロキシは、システムの起動時に起動されるか、システム 管理者が手動で起動する。プロキシマネージャは非管理プロキシの監視は行う が起動は行わない。
proxymngr に指定できるコマンド行オプションを以下に示す:
- -config
- デフォルトの proxymngr の設定ファイルを上書きする。 設定ファイルの詳細については後述する。
- -timeout
- プロキシマネージャが非管理プロキシを探そうとする時間間隔を秒数で指定す る。デフォルト値は10秒である。
- -retries
- プロキシマネージャが非管理プロキシを探すときのリトライの最大回数を指定 する。デフォルト値は3回である。
- -verbose
- リクエストを受け取りプロキシを起動したときにデバッグとトレース用の各種 レコードを表示させる。
プロキシマネージャの設定ファイル
プロキシマネージャは、利用可能なプロキシサービスを記述するローカルの設 定ファイルを管理している。この設定ファイルは、プロキシマネージャのイン ストール時に /usr/X11R6.4/lib/X11/proxymngr/pmconfig にインストールさ れている設定ファイルの位置はコマンド行オプションの -config で上書きすることができる。
感嘆符(!)で始められるコメント行を除くと、設定ファイルのそれぞれの行は 非管理プロキシサービスまたは管理プロキシサービスの記述である。
unmanaged プロキシの場合のフォーマットは以下である:
- <service-name> unmanaged <proxy-address>
ここで、service-name は非管理プロキシサービスの名前であり、空白文字を 含んでいてはならない(例: ``XFWP'')。service-name においては、大文字と 小文字は区別されない。
proxy-address は非管理プロキシのネットワークアドレスである。アドレスの フォーマットは service-name 固有である。例えば ``XFWP'' サービスの場合 には、proxy-address は ``firewall.x.org:100'' のようになる。
設定ファイル中に同じ非管理サービス名が複数ある場合、プロキシマネージャ は設定ファイルに現われた順にプロキシを使おうとする。
管理プロキシの場合のフォーマットは以下である:
- <service-name> managed <command-to-start-proxy>
service-name は管理プロキシサービスの名前であり、空白文字を含んではな らない(例: ``LBX'')。service-name においては、大文字と小文字は区別され ない。
command-to-start-proxy は、プロキシの新しいインスタンスを起動するため にプロキシマネージャが実行するコマンドである。command-to-start-proxy が空白文字を含む場合、コマンド全体をシングルクォートで括らなければなら ない。 望むならば、command-to-start-proxy を使ってリモートマシンでプロキシを 起動することができる。これを行うためのリモート実行の方法についての詳細 はここでは説明しない。
例
設定ファイルの例を示す:
- ! proxy manager config file ! ! Each line has the format: ! <serviceName> managed <startCommand> ! or ! <serviceName> unmanaged <proxyAddress> ! lbx managed /usr/X11R6.4/bin/lbxproxy ! ! substitute site-specific info xfwp unmanaged firewall:4444
プロキシマネージャについての詳細
プロキシマネージャが xfindproxy (または同様のクライアント)からリクエス トを受け取ったとき、その動作は対象の service-name によって決まる。
管理プロキシサービスの場合には、プロキシマネージャは、このサービスに対 して現在動作しているプロキシが新しいリクエストを処理することができるか どうかを調べる。処理できなければ、プロキシマネージャはプロキシの新しい インスタンスを起動しようとする(設定ファイル中の command-to-start-proxy が使われる)。それに失敗した場合、呼び出し側にエラーが返される。
非管理プロキシサービスの場合には、プロキシマネージャは設定ファイルを調 べ、このサービスに対する全ての非管理プロキシを見つける。同じ非管理サー ビス名を持つエントリが設定ファイル中に複数あった場合、プロキシマネー ジャは設定ファイルに現われた順にプロキシを使おうとする。いずれの非管理 プロキシもリクエストを扱えなければ、一定時間の間タイムア ウトし(この時間は -timeout オプションで設定でき、デフォルト値は10秒である)、非管理プロキシがリク エストを処理できるかどうか再び調べる。リトライの回数は -retries オプションで指定でき、デフォルト値は3回である。リトライも全て失敗する と、プロキシマネージャは呼び出し側にエラーを返すしかない(プロキシマネー ジャは非管理プロキシサービスを起動することができないからである)。
バグ
プロキシマネージャが監視するポートは設定可能にすべきである。-timeout オプションと -retries オプションは proxymngr には実装されていない。
proxymngr は、プロキシ管理プロトコルの GetProxyAddr リクエスト中の ``options''フィールドと``host''フィールドを利用することができない。
著者
Ralph Mor, X Consortium