rwhod(8)
|
FreeBSD 一般コマンドマニュアル
|
rwhod
rwhod
解説
rwhod は、 rwho(1) や ruptime(1) プログラムで使われるデータベースを管理す
るサーバです。ネットワークにおいて ブロードキャストもしくは マルチキャス
トメッセージが使用できることが前提となります。
rwhod はステータス情報の生成と利用の両方を行います。ただし、 -l (listen
モード) オプションを指定した場合は例外で、利用のみ行います。情報の生成で
は、定期的にシステムに状態を問い合わせ、ステータスメッセージを構築して
ネットワークにブロードキャストします。情報の利用では、他の rwhod サーバか
らの状態メッセージを受け取り、検査してから、 /var/rwho ディレクトリの下の
ファイルに記録します。
-i オプションは、安全ではないモードを有効にします。このモードでは、 rwhod
は入力パケットのソースポートを無視します。
-p オプションは、 rwhod にすべての POINTOPOINT インタフェースを無視させま
す。要求時にダイヤルするインタフェースを常に活動状態にしたくない場合に有
用です。
-l オプションを指定すると listen モードが有効になり、 rwhod は情報をブロ
ードキャストしなくなります。これにより、自分自身の情報をブロードキャスト
せずに他のマシンの rwhod 情報を監視することができます。
-m オプションは、インタフェースの "ifnet" 構造体に IFF_MULTICAST フラグが
設定されている全てのインタフェース (ループバックインタフェースは除きます)
上で、 rwhod に (ブロードキャストの代わりに) IP マルチキャストを使わせま
す。マルチキャストによる報告は、直接つながっているサブネットへの転送を防
ぐために TTL(Time To Live) 1で送られます。
オプションの ttl 引数が -m フラグとともに与えられた時には、 rwhod は IP
マルチキャストデータグラムを TTL が ttl として、全てのインタフェースでは
なく 1 つのインタフェースに対して送ります。 ttl は 0 から 32 (また
は、MAX_MULTICAST_SCOPE) までの値です。 -m 1 は、 -m とは異なることに注意
してください。 -m 1 は、1 つのインタフェースにだけ転送を行います。
-m フラグが、 ttl 引数無しで使われた場合、プログラムはマルチキャスト
rwhod 報告を全てのマルチキャストが利用可能なインタフェースから受け取りま
す。 ttl 引数が与えられた場合は、マルチキャストレポートは 1 つのインタ
フェースからだけ受け取ります。その 1 つは、報告を行っているものです (これ
は、ホストルーティング表によって制御されます)。 -m オプション無しでは、プ
ログラムはブロードキャストもしくはユニキャストによる報告を全てのインタ
フェースから受け取ります。したがって、このプログラムは、古い報告をマルチ
キャストを使っていない rwhod から受け取り、マルチキャストが使われている場
合は古い rwhod はこのプログラムによって生成される報告を受け取れないことに
なります。
サーバは、``who'' サービスで指定されているポート番号でメッセージを送受信
します。 services(5) を参照して下さい。送受信するメッセージは以下のような
形式です。
struct outmp {
struct whoent {
struct outmp we_utmp;
int we_idle;
} wd_we[1024 / sizeof (struct whoent)];
};
すべてのフィールドは、送信に先立ってネットワークバイトオーダに変換されま
す。ホスト負荷 (load average) は w(1) によって計算され、送信の 5, 10, 15
分前の負荷を 100 倍した整数として表現されます。ホスト名は、
gethostname(3) システムコールで得られたものがドメイン名を省略して格納され
ます。メッセージの最後の配列には、メッセージを送信したマシンにログインし
ているユーザの情報が格納されています。この情報は、 utmp(5) の非アイドルの
端末ラインのエントリと、その端末ラインから最後に文字を受け取った時間を秒
数で表した値が入っています。
rwhod サーバによって受信されるメッセージは、 rwhod サーバのポートから送信
されたものでないか、 -i オプションが指定されていなければ捨てられます。さ
らにメッセージのホストの名前が表示できない ASCII 文字を含んでいる場合も、
メッセージは捨てられます。 rwhod が受け取った正しいメッセージは /var/rwho
ディレクトリに whod.hostname というファイル名で格納されます。これらのファ
イルには、最新のメッセージだけが、上で説明した形式で残っています。
ステータスメッセージはほぼ 3 分ごとに作成されます。 rwhod は、30 分ごとに
/kernel に対して nlist(3) を実行します。これは、このファイルがその時点で
の実際のシステムイメージであることを確認するためです。
関連項目
ruptime(1), rwho(1)
バグ
ネットワーク間でステータス情報を中継する方法が必要です。ステータス情報
は、ずっと送りつづけるのではなく、要求があったときにだけ送るようにするべ
きでしょう。サーバが死んでいたり、ネットワークの通信障害を、マシンがダウ
ンしていると思い込んでしまう場合がよくあります。
歴史
rwhod コマンドは 4.2BSD で登場しました。
FreeBSD 4.4 December 11, 1993 FreeBSD 4.4