NGHOOK(8)

名称
nghook - netgraph(4) ノードへ接続する

書式
nghook [-adlnSs] [-m msg] path [hookname] nghook -e [-n] [-m msg] path hookname program [args ...]

解説
nghook ユーティリティは ng_socket(4) ソケットタイプノードを作成し、これを path にあるノードのフック hookname へ接続します。 hookname が省略されると、 “debug” を指定したものとされます。

-e オプションが指定されると、第 3 の引数はプログラムへのパスであると解釈され、 残りの引数を引数としてこのプログラムが実行されます。 このプログラムの実行前に (-m オプションで指定された) Netgraph メッセージがノードに送られます。 標準入力 (-n オプションで閉じられない限り) と標準出力がフックに接続されて、 このプログラムが起動されます。

-e オプションが指定されないと、 標準入力へ書き込まれる全データがこのノードに送られ、 このノードから受け取る全データが標準出力へ渡されます。 -m で指定されたメッセージは、ループに入る前に、ノードに送られます。 この場合、 nghook ユーティリティは、標準入力に EOF を検知すると終了します。

オプションは次の通りです:

-a  各読み込みパケットを、生のバイナリではなく、人間が読める形式の ASCII で出力します。

-d  デバッグ用冗長レベルを増加します。

-e  第 3 の引数で指定されたプログラムを実行します。

-l  全受信データを標準出力へ書き込むだけではなく、フックへ戻します。

-m msg
    (-e モードでの) プログラム実行前に、 指定された ASCII 制御メッセージをノードへ送ります。 本オプションは複数回指定可能です。

-n  標準入力からのデータ読み込みを試みません。 nghook ユーティリティは、シグナルによって停止させられるまで、 ノードからの読み込みを続けます。

-S  デフォルトの 1 の代りに 0 を、出力ファイル記述子として使用します。

-s  デフォルトの 0 の代りに 1 を、入力ファイル記述子として使用します。

バグ
全入力はバッファリングしないモードで読み込みますが、 入力のパケット化を制御する方法はありません。

ノードが (-m で指定された) メッセージに応答すると、その応答は失われます。

関連項目
netgraph(3), netgraph(4), ngctl(8)

歴史
netgraph システムのデザインと最初の実装は、Whistle Communications, Inc. で、 Whistle InterJet 向けにカスタマイズされた FreeBSD 2.2 で行われました。

作者
Archie Cobbs <archie@whistle.com>