ypbind(8) | System Manager's Manual | ypbind(8) |
ypbind - NIS バインドプロセス
ypbind [ -c ] [ -d|-debug ] [ -broadcast ] [ -broken-server ] [ -ypset ] [ -ypsetme ] [ -no-ping ] [ -f configfile ]
ypbind --version
ypbind は NIS ドメインのサーバを探して接続し、その NIS バインド情報を 保持する。クライアント (通常は標準 C ライブラリの NIS ルーチン) は ypbind への RPC を用いて、あるいはバインドファイルを読むことによって この情報を入手することができる。バインドファイルは /var/yp/binding に置かれており、慣習にしたがって [domainname].[version] のような名前が付けられている。 サポートされているバージョンは 1 と 2 である。 このようなファイルが複数存在することもあり得る。なぜなら NIS クライアントは複数のドメインにバインドすることもできるからである。
バインドが確立すると、 ypbind は YPPROC_DOMAIN リクエストを 20 秒間隔で現在の NIS サーバに送信する。 返信が返ってこなかったり、NIS サーバから「当該ドメインの情報はもう 保持していない」旨の返信が来た場合には、 ypbind は新しい NIS サーバを探す。 ypbind は 15 分ごとに、 現在の NIS サーバがもっとも高速であるかどうかのチェックを行う。 もしより高速なサーバがあれば、そちらに接続を切り替える。 新しいサーバを探すときには、 ypbind にネットワークブロードキャストを用いるようにさせることも できるし (これは安全でない)、または安全なことがわかっている サーバのリストを与え、その中から探すようにさせることもできる。 後者の場合は、 ypbind はすべてのサーバに ping を送り、最初に答えたサーバにバインドする。
-debug オプションが指定されなかった場合は、 ypbind は自分自身を制御端末から分離してバックグラウンドへ置く。 ypbind はエラーや警告メッセージの記録に syslog(3) を用いる。 起動時や SIGHUP シグナルを受け取ると、 ypbind は /etc/yp.conf ファイルをパースして、そのエントリを用いて最初のバインドを 行おうとする。有効なエントリは以下のようなものである。
domain nisdomain server hostname
domain nisdomain broadcast
ypserver hostname
設定ファイルに broadcast エントリがあった場合は、 ypserver/hostname エントリは上書きされる。 boradcast エントリがなかった場合は、その他の エントリで与えられたサーバ全てがダウンしている場合でも、 ypbind はブロードキャストは用いない。 ypbind が /etc/yp.conf で与えられたホスト名の解決をする際には、まず /etc/hosts を試し、次に DNS を用いようとする。 ypbind は検索順序の再設定ができない場合には、 DNS だけを用いる。 DNS が使えない場合には、 /etc/hosts に IP アドレスの書かれているホストしか指定できない。 ypbind で検索順序の再設定をするためには glibc 2.x が必要である。 -boradcast オプションが指定された場合には、 ypbind は設定ファイルを無視する。 設定ファイルが存在しなかったり、有効なエントリがひとつもなかった 場合には、 ypbind は終了する。
この ypbind は pthreads を用いた特殊なバージョンである。この ypbind は 2 つのスレッドを新たに生成する。マスタープロセスは バインド情報を尋ねてくる RPC リクエストにサービスする。 最初のスレッドはバインドを初期化して、それを定期的にチェックする。 障害が起こった場合にはバインドは無効となり、このプロセスは 有効なサーバを再び見つけようとする。二つめのスレッドは すべてのシグナルを処理する。
複数ドメインへのバインドもテストされており、動作する。 単一ドメインにおける複数サーバへの負荷分散はサポートされていない。 ypbind は常にドメインをサーバへバインドしようとする。 リストに有効なサーバがない場合や、ブロードキャストに対する 反応がない場合には、ドメインへのバインドは解除される。
syslog(3), domainname(1), ypdomainname(8), ypwhich(1), ypserv(8), ypset(8)
ypbind-mt は Thorsten Kukuk <kukuk@suse.de> によって書かれた。
April 2002 | ypbind-mt Version 1.16 |