Solaris のシステム管理 (上級編)

障害メッセージ

lp.tell プログラムを使用すると、LP 印刷サービスに障害メッセージを送信できます。このプログラムは、標準プリンタインタフェースコード内の LPTELL シェル変数によって参照されます。プログラムは標準入力を取り込んで LP 印刷サービスに送信し、LP 印刷サービスは管理者にプリンタ障害を警告するメッセージを出します。標準入力が空であれば、lp.tell は警告を開始しません。lp.tell プログラムの例として、次のコメントの直後の標準プリンタインタフェースコードを確認してください。


# Set up the $LPTELL program to capture fault messages here

特殊な終了コード 129 または lp.tell プログラムを使用すると、プリンタインタフェースプログラムはプリンタ自体を使用不可にする必要がありません。インタフェースプログラムは、プリンタを直接使用不可にできますが、その場合は障害警告メカニズムが無効になります。LP 印刷サービスがプリンタ障害を検出した場合にのみ警告が送信され、特殊終了コードと lp.tell プログラムはその主要検出ツールです。

LP 印刷サービスがいずれかの時点でファイルの印刷を中断しなければならない場合は、TERM 信号 (トラップ番号 15) を使用してインタフェースプログラムを終了させます。(kill(1) および signal(3C) のマニュアルページを参照)。プリンタインタフェースプログラムが他の信号を受信して終了した場合は、LP 印刷サービスはその後の印刷要求は影響されないものとみなし、そのプリンタを使用し続けます。LP 印刷サービスは、要求を依頼したユーザーに、その要求が正常に終了しなかったことを通知します。

インタフェースが最初に呼び出されると、信号 HUP、INT、QUIT、PIPE (トラップ番号 1、2、3、13) は無視されます。標準インタフェースは、信号が適切な時期にトラップされるように、この動作を変更します。標準インタフェースはこれらの信号の受信をプリンタの問題を示す警告として解釈し、信号を受信すると障害警告を発します。