lp.cat, lp.set, lp.tell コマンド

注: これは System V Print Subsystem コマンドです。

目的

インターフェース・プログラムで使用するデフォルト・プリンター・フィルター。

構文

/usr/lib/lp/bin/lp.cat [ -r ] [ Rate ]

/usr/lib/lp/bin/lp.set H_pitch V_pitch Width Length Charset

/usr/lib/lp/bin/lp.tell Printer

説明

lp.cat コマンドは、 インターフェース・プログラムによって呼び出されるデフォルト・プリンター・フィルターです。 lp.cat は、標準入力に印刷されるファイルを読み取り、 印刷先のデバイスに書き込みます。

lp.cat は次のシグナルを処理します。

  • 正常終了 (SIGTERM)
  • シリアル・ライン停止 (SIGHUP、データ・キャリア検出 (DCD) 廃棄による)
  • 割り込み (SIGINT および SIGQUIT)
  • 早期パイプ終了 (SIGPIPE)

lp.cat コマンドは、 印刷ジョブの出力待ちの時間が長くなると異常終了します。 デフォルトの最大待ち時間は、出力バッファー・サイズを 2 倍して (2 * 1024 バイト)、 送信速度、印刷速度、または Rate の指定値 (いずれの速度も字/秒 (CPS)) のうち最小の値で除算すると求められます。 Rate パラメーターにより新しく最大遅延時間を定義できます (このパラメーターで定義した遅延時間の方が長い場合)。 Rate が 0 の場合は、 遅延できる時間は実際上無期限になります。

-r フラグを指定すると、 lp.cat は字/秒単位で有効スループットを報告します。 この統計は、 1024 バイト送信されるたびに標準エラー出力に印刷されます。

インターフェース・プログラムで lp.set コマンドを呼び出して、 プリンター上の文字ピッチ (H_pitch)、 行ピッチ (V_pitch)、 ページ幅 (Width)、 ページ長 (Length)、 および文字セット (Charset) を設定できます。

デフォルトの単位は、文字と行ピッチの場合は字/インチ、幅の場合は列数、 長さの場合は行数です。 センチメートルの場合は c、インチの場合は i を値に付加すると、 単位を明示的に指定できます。

特定の特性を設定できない場合は、 lp.set は値 1 で終了し、 1 文字の文字コードの後で改行して標準エラー出力に印刷します。 次の表に文字コードを示します。

文字コード 設定されていないプリンター特性
H 文字ピッチ
L ページ長
S 文字セット
V 行ピッチ
W ページ幅

インターフェース・スクリプトでは、 lp.tell を使用して、 プリンター障害の説明を印刷サービスに送信します。 lp.tell は、 標準入力上で読み取ったものをすべて印刷サービスに送ります。 印刷サービスは、印刷管理者に対するアラートとしてメッセージを送信します。

フラグ

項目 説明
-r lp.cat コマンドの場合に、有効スループット (字/秒単位) の報告を指定します。 この統計は、 1024 バイト送信されるたびに標準エラー出力に印刷されます。

終了状況

lp.cat の場合の有効な終了値を次の表に示します。
項目 説明
0 標準終了; エラーなし
1 標準入力が定義されていない
2 標準出力が定義されていない
3 プリンター・タイプ (TERM) が定義されていないか terminfo データベース中にない
4 標準入力と出力が同一
5 書き込みの失敗; プリンターがオフラインの可能性あり
6 長時間遅延によるタイムアウト; プリンターがオフラインの可能性あり
7 停止 (SIGHUP) 検出; キャリアが消失
8 終了 (SIGINT または SIGQUIT) またはパイプの早期クローズ (SIGPIPE)

lp.set は正常実行された場合は 0 を戻し、 正常実行されなかった場合はエラーとして 1 を戻します。

lp.tell は次の数値を戻します。
項目 説明
0 標準終了; エラーなし
1 表示するサービスに対するメッセージ・キューをオープンできない
90 以前のサービスからプリンター名かキーを取得できない
91 表示するサービスにメッセージを送信できない
92 以前のサービスから肯定応答を受信できない
93 以前のサービスから破壊された肯定応答を受信した
94 印刷サービスが送信中に破壊されたメッセージを報告した

ファイル

項目 説明
/usr/lib/lp/bin/lp.cat lp.cat の絶対パス名
/usr/lib/lp/bin/lp.set lp.set の絶対パス名
/usr/lib/lp/bin/lp.tell lp.tell の絶対パス名
/etc/lp/model プリンター・インターフェース・プログラム・ディレクトリー
/etc/lp/interfaces プリンター・インターフェース・プログラム・ディレクトリー