ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (印刷) Oracle Solaris 10 8/11 Information Library (日本語) |
1. Oracle Solaris オペレーティングシステムでの印刷の概要
4. Oracle Solaris 印刷マネージャーを使用したプリンタの設定および管理 (作業)
8. LP 印刷スケジューラの管理および印刷要求の管理 (作業)
10. 文字セット、フィルタ、フォーム、およびフォントの管理 (作業)
11. PPD ファイル管理ユーティリティーを使用したプリンタの管理 (作業)
12. Oracle Solaris オペレーティングシステムでの印刷 (参照情報)
PostScript プリンタ記述 (PPD) ファイルのサポート
サポートされるプリンタおよび使用可能な PPD ファイルについての情報を見つけるには
Oracle Solaris 印刷マネージャーの「プリンタドライバ」フィールドの説明
この節では、LP 印刷サービスのディレクトリ構造、ファイル、およびログについて説明します。
注 - LP 印刷サービスのクライアントコマンドは、FSG OpenPrinting Open Standard Print API (PAPI) のコンシューマになるように変更されました。これらの印刷コマンドは PAPI の階層の上に置かれています。詳細は、「Oracle Solaris OS での PAPI 実装」を参照してください。
次の表に、頻繁に使用する LP 印刷サービスのコマンドを示します。
表 12-2 LP 印刷サービスのコマンド
|
PAPI で使用するために変更された 印刷コマンドについては、「Oracle Solaris OS での PAPI 実装」を参照してください。
LP 印刷サービスは、次の機能を実行します。
ファイルを管理してローカル印刷要求をスケジュールする。
ネットワーク要求を受け取り、スケジュールする。
ファイルが正しく印刷されるように、必要に応じてフィルタを通す。
プリンタとインタフェースするプログラムを起動する。
印刷ジョブの状態を追跡する。
プリンタに装着されたフォームを追跡する。
現在装着されている印字ホイールを追跡する。
新しいフォームや別の印字ホイールを装着するよう警告を発する。
印刷問題に関する警告を発する。
/usr/lib/lp ディレクトリには、次の表に示すような LP 印刷サービスに使用されるデーモンとファイルが入っています。
表 12-3 /usr/lib/lp ディレクトリの内容
|
LP 印刷サービスのファイルは、次の表のようにいくつかのディレクトリに分散されています。
表 12-4 LP 印刷サービスのディレクトリ
|
lpsched デーモンが/etc/lp ディレクトリに格納する構成情報を、次の表に示します。
注意 - この表に一覧表示されている構成ファイルは非公開インタフェースです。これらのファイルは、今後のリリースで変更される可能性があります。現在の場所にあるファイルに依存する、または現在使用している形式のデータに依存するソフトウェアを構築しないようにしてください。 |
表 12-5 /etc/lp ディレクトリの内容
|
これらの構成ファイルは、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
プリンタ固有の各ディレクトリ内には、次の表に示すファイルがあります。
|
通常、プリンタ 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/share/lib/terminfo) に格納されています。この情報には、プリンタの機能と初期制御データが含まれます。インストールするプリンタは、terminfo データベース内のエントリに対応していなければなりません。
$ pwd /usr/share/lib/terminfo $ ls 1 3 5 7 9 B H P a c e g i k m o q s u w y 2 4 6 8 A G M S b d f h j l n p r t v x z $
各サブディレクトリには、端末またはプリンタに関してコンパイル済みのデータベースエントリが入っています。各エントリは、プリンタまたは端末のタイプの頭文字別に編成されています。たとえば、Epson プリンタがある場合は、/usr/share/lib/terminfo/e ディレクトリ内を探すと、Epson プリンタの特定のモデルが見つかります。
$ cd /usr/share/lib/terminfo/e $ ls emots ep2500+high ep48 ergo4000 exidy2500 env230 ep2500+low epson2500 esprit envision230 ep40 epson2500-80 ethernet ep2500+basic ep4000 epson2500-hi ex3000 ep2500+color ep4080 epson2500-hi80 exidy $
Epson プリンタのエントリは、epson で始まります。
NEC プリンタがある場合は、/usr/share/lib/terminfo/n ディレクトリ内を探すと、対象の NEC プリンタモデルが見つかります。
$ cd /usr/share/lib/terminfo/n $ ls ncr7900 ncr7900iv netronics network nuc ncr7900-na ncr7901 netty netx nucterm ncr7900i nec netty-Tabs newhp ncr7900i-na net netty-vi newhpkeyboard $
このディレクトリの nec エントリが NEC プリンタ用です。
次の 3 つの表に、プリンタで必要となる terminfo 項目の一覧を示します。
表 12-6 プリンタに必要な terminfo 項目 (ブール値)
|
表 12-7 プリンタに必要な terminfo 項目 (数値)
|
表 12-8 プリンタに必要な terminfo 項目 (文字列)
|
LP 印刷サービスには、次の表に示すログファイルが 2 組あります。
|
各システムのスケジューラは、/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 #
次の表に、文字コードとそれに対応する requests ログファイルの行の内容を示します。
表 12-9 requests ログファイルのコード
|
次の表に、LP requests ログファイル内の結果コードとその説明を示します。
表 12-10 requests ログファイル内の結果コード
|
印刷待ち行列に入れられたファイルは、印刷されるまで /var/spool/lp ディレクトリに格納されます。その間は数秒程度です。次の表は、/var/spool/lp ディレクトリの内容を示します。
表 12-11 /var/spool/lp ディレクトリの内容
|
印刷フィルタは、待ち行列内のファイルの内容をある形式から別の形式に変換する、印刷サーバー上のプログラムです。
印刷フィルタは、必要に応じて単純な場合も複雑な場合もあります。Oracle Solaris OS では、出力先プリンタが PostScript 形式のデータを必要とする場合のほとんどに対応する印刷フィルタが、/usr/lib/lp/postscript ディレクトリに提供されています。PostScript 以外のプリンタ用のフィルタが必要な場合は、そのフィルタを作成し、目的のシステムに追加しなければなりません。
一連の「印刷フィルタ記述子ファイル」が /etc/lp/fd ディレクトリに用意されています。これらの記述子ファイルは、フィルタの特性 (高速フィルタや低速フィルタなど) を記述します。これらの記述子ファイルは、フィルタプログラム (/usr/lib/lp/postscript/postdaisy など) を指定します。
LP 印刷サービスは、Oracle Solaris OS の他の部分と情報をやり取りします。また、標準プリンタインタフェースプログラムを使用して、次の作業を実行します。
必要に応じてプリンタポートを初期化する。標準プリンタインタフェースプログラムは、stty コマンドを使用してプリンタポートを初期化する。
プリンタを初期化する。標準プリンタインタフェースプログラムは、terminfo データベースと TERM シェル変数を使用して、適切な制御シーケンスを見つける。
必要に応じてバナーページを印刷する。
印刷要求で指定された部数だけ印刷する。
LP 印刷サービスは、別のプログラムが指定されなければ、/usr/lib/lp/model ディレクトリにある標準インタフェースプログラムを使用します。カスタムのインタフェースプログラムを作成できます。ただし、カスタムプログラムがプリンタへの接続を終了させたり、正しいプリンタの初期化を妨げたりしないことを確認する必要があります。