この節では、LP 印刷サービスのディレクトリ構造、ファイル、ログ、およびコマンドについて説明します。
LP 印刷サービスのファイルは、表 8–1 のように 7 つのディレクトリに分散されています。
表 8–1 LP 印刷サービスのディレクトリ
ディレクトリ |
内容 |
---|---|
/usr/bin |
LP 印刷サービスのユーザーコマンド |
/etc/lp |
LP 構成ファイルの階層 |
/usr/share/lib |
terminfo データベースディレクトリ |
/usr/lib/print |
lp 変換スクリプト、in.lpd デーモン、printd デーモン。 printd デーモンは /var/spool/print ディレクトリのすべての保留ジョブを 1 分間に 1 回転送する。 転送するジョブがなくなると終了する |
/usr/sbin |
LP 印刷サービスの管理コマンド |
/usr/lib/lp |
lpsched プログラム、バイナリファイル、PostScript フィルタ、および model ディレクトリ。 model ディレクトリには、標準プリンタインタフェースプログラムが入っている |
/var/lp/logs |
LP ログファイル。lpsched.n には lpsched からのメッセージが、requests.n には完了した印刷要求に関する情報が含まれる |
/var/spool/lp |
ファイルが印刷待ち行列に入れられるスプーリングディレクトリ |
/var/spool/print |
LP 印刷サービスのクライアント側要求格納域 |
lpsched デーモンが/etc/lp ディレクトリに格納する構成情報を、次の表に示します。
表 8–2 の構成ファイルはプライベートインタフェースで、将来のリリースでは変更される可能性があります。現在の場所にあるファイルに依存する、または現在使用している形式のデータに依存するソフトウェアを構築しないようにしてください。
ファイル |
種類 |
説明 |
---|---|---|
classes |
ディレクトリ |
lpadmin -c コマンドで与えたクラスを識別するファイル |
fd |
ディレクトリ |
既存のフィルタの記述 |
filter.table |
ファイル |
印刷フィルタ照合テーブル |
forms |
ディレクトリ |
各フォームのファイルを格納する場所。最初は、このディレクトリは空になっている |
interfaces |
ディレクトリ |
プリンタインタフェースプログラムファイル |
logs |
/var/lp/logs へのリンク |
印刷動作のログファイル |
model |
/usr/lib/lp/model へのリンク |
標準プリンタインタフェースプログラム |
printers |
ディレクトリ |
各ローカルプリンタのディレクトリ。各ディレクトリには、個々のプリンタの構成情報と警告ファイルが入っている |
pwheels |
ディレクトリ |
印字ホイールまたはカートリッジファイル |
これらの構成ファイルは、lpd ベースのプリンタサーバー上の /etc/printcap ファイルと同じ機能を提供します。
これらのファイルの内容を確認できますが、ファイルを直接編集しないでください。代わりに、lpadmin コマンドを使用して構成を変更します。変更内容は /etc/lp ディレクトリ内の構成ファイルに入力されます。lpsched デーモンは、構成ファイルを管理して構成します。
/etc/lp/printers ディレクトリには、システムに認識されるローカルプリンタごとに 1 つずつサブディレクトリが入っています。次の例は、プリンタ sparc1 と luna の /etc/lp/printers サブディレクトリを示します。
$ ls -l /etc/lp/printers drwxrwxr-x 2 lp lp 512 Jan 23 23:53 luna drwxrwxr-x 2 lp lp 512 Jan 11 17:50 sparc1 |
プリンタ固有の各ディレクトリ内では、次のファイルを使用してプリンタを記述できます。
ファイル名 |
説明 |
---|---|
alert.sh |
警告に応答して実行するシェル |
alert.vars |
警告変数 |
configuration |
構成ファイル |
users.deny |
プリンタアクセスが拒否されるユーザーのリスト |
comment |
プリンタ記述 |
通常、プリンタ luna の構成ファイル /etc/lp/printers/luna/configuration は、次のようになっています。
Banner: on: Always Content types: PS Device: /dev/term/b Interface: /usr/lib/lp/model/standard Printer type: PS Modules: default |
/usr/share/lib ディレクトリには、terminfo データベースのディレクトリが入っており、そのディレクトリには多数のタイプの端末とプリンタに関する定義が入っています。LP 印刷サービスは、terminfo データベース内の情報を使用してプリンタを初期設定し、選択されたページサイズ、文字ピッチ、行ピッチ、および文字セットを設定し、一連のコードをプリンタに送ります。
各プリンタは、terminfo データベース内で短縮名を使用して識別されます。terminfo データベースの構造については、プリンタタイプを参照してください。 必要であれば、terminfo データベースにエントリを追加できますが、これは煩雑で時間のかかる作業です。詳細は、サポートされていないプリンタの terminfo エントリを追加するを参照してください。
/usr/lib/lp ディレクトリには、表 8–3 に示すような LP 印刷サービスに使用されるデーモンとファイルが入っています。
表 8–3 /usr/lib/lp ディレクトリの内容
ファイル |
種類 |
説明 |
---|---|---|
bin |
ディレクトリ |
印刷警告、低速フィルタ、待ち行列管理プログラムを生成するファイルが入っている |
lpsched |
デーモン |
LP 印刷要求のスケジューリングを管理する |
model |
ディレクトリ |
標準プリンタインタフェースプログラムが入っている |
postscript |
ディレクトリ |
LP 印刷サービスで提供されているすべての PostScript フィルタプログラムが入っている。これらのフィルタには、フィルタの特性とその格納場所を LP 印刷サービスに指示する /etc/lp/fd ディレクトリ内の記述子ファイルが含まれる |
LP 印刷サービスは、次の 2 組のログファイルを管理します。
ログファイル名 |
説明 |
---|---|
syslogd(1M) |
/etc/syslog.conf の lpr.debug を設定して LP 印刷サービスロギングを有効にする |
/var/spool/lp |
印刷待ち行列に入っている現在の待ち行列のリスト |
/var/lp/logs/requests |
進行中の印刷要求の履歴 |
各システムのスケジューラは、/var/spool/lp/tmp/ system ディレクトリと/var/spool/lp/requests/ system ディレクトリ内で印刷要求ログを保管します。各印刷要求は、要求に関する情報を含んだファイルを 2 つ (各ディレクトリに 1 つずつ) 持っています。/var/spool/lp/requests/system ディレクトリ内の情報には、スーパーユーザーまたは lp しかアクセスできません。/var/spool/lp/tmp/systemディレクトリ内の情報には、その要求を出したユーザー、スーパーユーザー、または lp しかアクセスできません。
次の例では、/var/spool/lp/tmp/starbug ディレクトリの内容を示します。
$ ls /var/spool/lp/tmp/starbug 5 5-0 # cat 5-0 C 1 D print1 F /etc/profile P 20 T /etc/profile t simple U root s 0000 v 2 |
これらのファイルは、印刷要求が待ち行列に入っている限り、そのディレクトリ内に残っています。要求が完了すると、ファイル内の情報は組み合わされ 、/var/lp/logs/requests ファイルに追加されます。このファイルについては、次の節で説明します。
現在待ち行列に入っている印刷要求の状態を追跡したい場合は、/var/spool/lp/logs ディレクトリの情報を使用します。
LP 印刷サービスは、lpsched と requests という 2 つのログファイルに印刷サービスの履歴を記録します。これらのログファイルは、/var/lp/logs ディレクトリに入っています。これらのログ内の情報を使用し、印刷の問題を診断して解決できます。次の例は、/var/lp/logs ディレクトリの内容を示します。
# cd /var/lp/logs # ls lpsched.1 requests requests.2 lpsched lpsched.2 requests.1 # |
問題の解決に最も重要な 2 つのログファイルは、ローカルの印刷要求に関する情報が入っている lpsched ログと、すでに完了してプリンタの待ち行列にない印刷要求の情報が入っている requests ログです。
requests ログの構造は単純なので、共通の UNIX シェルコマンドを使用してデータを抽出できます。要求は、出力された順番に要求 ID を示す行で区切って表示されます。 = で始まる区切り行より下の各行には、その行に含まれる情報の種類を識別する 1 つの文字が付いています。各文字は、空白文字 1 つでデータと区切られます。
次の例は、requests ログの内容を示しています。
# pwd /var/lp/logs # tail requests.2 = print1-3, uid 0, gid 1, size 206662, Wed Mar 14 08:56:30 MST 2003 z print1 C 1 D print1 F /usr/dict/words P 20 T /usr/dict/words t simple U root s 0x0014 v 2 # |
表 8–4 に、文字コードとそれに対応する LP requests ログ内の行を示します。
表 8–4 LP requests ログ内の文字コード
文字 |
行の内容 |
---|---|
= |
区切り行。ユーザーの要求 ID、ユーザー ID (UID)、グループ ID (GID)、フィルタを通す前のファイルサイズの総バイト数、および要求が待ち行列に入れられた時刻が入っている |
z |
プリンタ名 |
C |
印刷部数 |
D |
出力先のプリンタかクラス、または any |
F |
印刷されたファイル名。この行は印刷されたファイルごとに区切られ、ファイルが印刷された順番で表示される |
f |
(省略可能) 使用するフォーム名。 |
H |
(省略可能) 特殊処理。resume、hold、または immediate |
N |
(省略可能) 印刷要求が正常に完了したときに使用された警告のタイプ。ユーザーが電子メールで通知を受けたときは M タイプ、端末へのメッセージで通知を受けた場合は W タイプ |
O |
(省略可能) プリンタ依存の -o オプション。たとえば、nobanner |
P |
印刷要求の優先順位 |
p |
印刷されたページのリスト |
r |
(省略可能) ユーザーが lp -r コマンドを使用してファイルの「raw」処理を要求したときに含まれる 1 文字の行 |
S |
(省略可能) 使用された文字セット、印字ホイール、またはカートリッジ |
T |
バナーページに印刷されるタイトル |
t |
ファイル内で見つかった内容形式 |
U |
印刷要求を出したユーザー名 |
s |
16 進数形式の各ビットの組み合わせで表される要求の結果。印刷サービスの内部では複数のビットが使用される。ビットとその意味については、下表に記載 |
x |
(省略可能) 印刷要求に使用された低速フィルタ |
Y |
(省略可能) 要求の印刷に使用された印刷フィルタの特殊モードのリスト |
z |
(省略可能) 要求に使用したプリンタ。 要求がプリンタまたはプリンタクラスの待ち行列に入れられた場合や、要求が別の出力先に移動された場合は、このプリンタは出力先 (D 行) とは異なる |
表 8–5 に、LP requests ログ内の結果コードとその説明を示します。
表 8–5 LP requests ログ内の結果コード
結果コード |
説明 |
---|---|
0x0001 |
要求は保留され再開を待機中 |
0x0002 |
低速フィルタを実行中 |
0x0004 |
低速フィルタを正常に完了 |
0x0008 |
要求はプリンタ上にある |
0x0010 |
印刷を正常に完了 |
0x0020 |
要求は保留されユーザーによる変更を待機中 |
0x0040 |
要求は取り消し済み |
0x0080 |
要求は次に印刷される |
0x0100 |
フィルタ処理または印刷要求に失敗 |
0x0200 |
要求はリモートプリンタに転送中 (現在は使用されない) |
0x0400 |
ユーザーに通知 |
0x0800 |
通知が動作中 |
0x1000 |
リモートシステムが要求を受け付け済み (現在は使用されない) |
0x2000 |
管理者が要求を保留した |
0x4000 |
プリンタのフィルタを変更しなければならなかった |
0x8000 |
要求は一時的に停止された |
印刷待ち行列に入れられたファイルは、印刷されるまで /var/spool/lp ディレクトリに格納されますが、それがわずか数秒の場合があります。表 8–6 は、 /var/spool/lp ディレクトリの内容を示します。
表 8–6 /var/spool/lp ディレクトリの内容
ファイル |
種類 |
説明 |
---|---|---|
SCHEDLOCK |
ファイル |
スケジューラのロックファイル。スケジューラが停止し、再起動されない場合は、このファイルをチェックする |
admins |
ディレクトリ |
/etc/lp へのリンク |
bin |
ディレクトリ |
/usr/lib/lp/bin へのリンク |
logs |
リンク |
完了した印刷要求のログが記録される ../lp/logs へのリンク |
model |
リンク |
/usr/lib/lp/model へのリンク |
requests |
ディレクトリ |
印刷要求が印刷されるまで記録される構成済みプリンタごとのサブディレクトリが入ったディレクトリ。ユーザーはこのログにアクセスできない |
system |
ディレクトリ |
システムの印刷状態ファイル |
temp |
リンク |
スプールされた要求が入っている /var/spool/lp/tmp/ hostname へのリンク |
tmp |
ディレクトリ |
印刷要求が印刷されるまでログが記録される構成済みの各プリンタのディレクトリ。既存の印刷要求を変更した場合も、このログに記録される |