この章では、Oracle Solaris オペレーティングシステム (OS) での印刷の概要について説明します。印刷サービス、ツール、およびプロトコルの概念について説明します。このマニュアルの以降の各章では、これらのツール、プロトコル、および技術を使用して印刷サービスとプリンタを管理する方法について説明します。
この章で紹介するいくつかの用語と概念は、このマニュアル全体で頻繁に使用されます。印刷の概念を完全に理解するには、これらの概念と用語を基本的に理解することが不可欠です。概念と用語の一覧については、用語集を参照してください。
この章の内容は次のとおりです。
この節では、この Oracle Solaris リリースで新たに追加または変更された印刷機能について説明します。 Oracle Solaris の新機能の完全な一覧や各 Oracle Solaris リリースの説明については、『Oracle Solaris 10 9/10 の新機能』を参照してください。
Oracle Solaris リリースに実装されている Open Standard Print API (PAPI) の設計では、より高いレベルの特権でアプリケーション、ツールキット、および印刷コマンドを実行しなくても、印刷サービスと対話できるようになりました。
その結果、次の印刷コマンドは SUID ルートにインストールされなくなりました。
/usr/bin/lp
/usr/bin/lpstat
/usr/bin/cancel
/usr/bin/lpmove
/usr/{ucb|bin}/lpr
/usr/{ucb|bin}lpq
/usr/{ucb|bin}/lprm
/usr/lib/print/printd
これらのコマンドは、以前は SUID ルートにインストールされていました。それは、次のような目的のために、より高いレベルの特権を必要としていたためです。
予約ポートを開く
連続するジョブ ID 番号を割り当てる
/var/spool/print ディレクトリのファイルを操作する
現在は、この機能は小さなヘルパーアプリケーション /usr/lib/print/lpd-port に集約されています。その結果、RFC-1179 PAPI サポートを使用するどのアプリケーションでも、より高いレベルの特権は不要になりました。lpd-port ヘルパーアプリケーションには、RFC-1179 プロトコルの要求を予約ポートに渡すため、および連続するジョブ ID 番号を割り当てるための、最小限のサポートが含まれています。ヘルパーアプリケーションは SUID ルートにインストールされますが、必要になるまで特権は引き上げられません。特権は、必要な操作に応じて必要なときに引き上げられ、より高いレベルの特権が不要になると永続的に削除されます。Oracle Solaris リリースでは、この処理は特権を使用することによって実現されます。ほかのプラットフォームでは、この処理は setuid、seteuid、または setreuid 関数を使用することによって実現されます。
ネットワーク上で共有したくないローカルプリンタがある場合は、印刷ネットワークリスナーを安全に無効にすることができます。Oracle Solaris リリースを実行しているか、または CUPS サーバーを使用している場合、IPP を使用してこれらのサーバーと通信すると、lpstat コマンドにより、各サーバーの機能に加えてリモートの印刷待ち行列および印刷ジョブに関する追加情報を取得できます。
IPP が使用されている場合は、適切として承認されれば、リモート印刷待ち行列および印刷ジョブに対して次の操作を実行できます。
accept
reject
enable
disable
move job
modify job
また、IPP が使用されている場合は、印刷要求を印刷サーバー上の印刷待ち行列の間で移動したり、リモートで変更したりすることができます。
詳細は、privileges(5) のマニュアルページを参照してください。詳細な手順については、「インターネット印刷プロトコル使用時のネットワーク上のプリンタの管理 (作業マップ)」を参照してください。
Solaris 10 5/08: PPD ファイルマネージャー /usr/sbin/ppdmgr は、Solaris の印刷サブシステムで使用される PostScript プリンタ記述 (PPD) ファイルを管理するためのユーティリティーです。ppdmgr ユーティリティーまたは lpadmin コマンドと -n オプションを使用して PPD ファイルをシステムに追加すると、PPD ファイル情報のキャッシュが自動的に更新されます。このキャッシュは Solaris 印刷マネージャーで使用されます。
詳細は、「PPD ファイル管理ユーティリティーを使用した PPD ファイルの管理 (作業マップ)」、および ppdmgr(1M) のマニュアルページを参照してください。
印刷システムの中核は UNIX System V (R4) ベースのスプーラです。スプーラに加え、スプーラの要求と管理を行うクライアントアプリケーション、ドキュメントの翻訳を実行するフィルタ、最終的なドキュメントの変換を実行するバックエンド処理ソフトウェア、およびデバイス (プリンタ) 通信があります。印刷システムの完全な機能を利用するには、これらすべての資源が必要です。
Oracle Solaris OS での印刷は、次のものをサポートするソフトウェアから構成されています。
印刷コマンド
印刷スプーラ
有線プロトコル
クライアントからサーバーやプリンタに印刷要求を移動するといった、基になる技術
次の図は、印刷システムのコンポーネントを表す概要レベルの図です。
Oracle Solaris の印刷に最近加えられた変更には、PAPI を介して実装される、IPP のクライアント側サポートの統合が含まれます。Berkeley Software Distribution (BSD) と System V (SysV) のコマンド、および一部のアプリケーションは、PAPI インタフェースの階層の上に置かれています。「Open Standard Print API の実装」を参照してください。
Oracle Solaris 10 OS でのプリンタの設定および管理に使用可能なツールは、次のとおりです。
Solaris 印刷マネージャー。ローカルシステム上やネームサービス内の印刷構成を管理するグラフィカルユーザーインタフェース (GUI) です。
LP 印刷サービスコマンド。ローカルシステム上やネームサービス内のプリンタを設定して管理するコマンド行インタフェース (CLI) です。これらのコマンドは、他の印刷管理ツールにない機能も提供します。
Oracle Solaris リリースでサポートされているインタフェース、プロトコル、およびテクノロジは、次のとおりです。
IPP (Internet Printing Protocol)
Samba 経由のサーバーメッセージブロック (SMB) プロトコル
Berkeley Software Distribution (BSD) プロトコル
Oracle Solaris に Open Standard Print API (PAPI とも呼ばれる) を実装すると、印刷サービスとプロトコルに依存しないインタフェース層の上にアプリケーション、ツールキット、および印刷コマンドを置くことができます。この実装は、RFC-1179、IPP ベース、および LP ベースの印刷サービスで使用できます。サポートされている PAPI の関数の中には、プリンタへのジョブの送信と照会のほかに、プリンタ、サーバー、およびジョブの属性も含まれます。このサポートにより、印刷クライアント (アプリケーション) または印刷コマンド自体で、印刷システムに対してプリンタの特性を照会したり、情報を要求したりできます。
詳細は、次のマニュアルページを参照してください。
従来の印刷コマンドは、印刷システムに固有のプロトコルおよびインタフェースの上に実装されていたため、特定の印刷システムに限定されていました。そのような印刷プロトコルには、IPP、BSD、LPR、SysV LP、LPRng などがあります。PAPI が導入されたことにより、印刷サービスとプロトコルには依存しないインタフェースを基にしてこれらの印刷コマンドを実行できます。
PAPI は、印刷サービスと対話するための単一のインタフェースをアプリケーションに提供します。つまり、このインタフェースを使用するようにアプリケーションを作成すると、アプリケーションに変更を加えなくてもさまざまな印刷サービスと対話させることができます。アプリケーションは、LP 印刷サービスや CUPS などの特定の印刷サービスに限定されなくなりました。したがって、システム上の印刷サービスを、その上の階層にあるプロトコルやアプリケーションに影響を与えることなく置き換えることができます。つまり、特定のニーズに基づいて印刷サービスを開発および選択することができます。
Oracle Solaris OS での PAPI の実装は、IPP のサーバー側サポートとクライアント側サポートの両方を提供します。IPP は PAPI の階層の上に置かれています。IPP は、一連のプロトコル固有ライブラリおよび Apache モジュールとして実装されます。コマンドの実装と同様に、IPP 待機サービスも、PAPI をサポートしている任意の印刷サービスで使用できます。RFC-1179 プロトコルのサーバー側サポートも用意されています。
「印刷サーバー」とは印刷待ち行列の構成先となるシステムのことであり、ネットワーク上のほかのシステムからプリンタを利用できるようにします。「印刷クライアント」とは、構成された印刷待ち行列を使用するシステムのことです。
プリンタは、ローカルとリモートの 2 つのカテゴリに分けることもできます。「ローカルプリンタ」とは、印刷待ち行列がユーザーのローカルシステム上に定義されていることを意味します。「リモートプリンタ」とは、印刷待ち行列がユーザーのローカルシステム以外の場所に定義されていることを意味します。プリンタが物理的にシステムに接続されているかネットワークに接続されているかは、これらの用語にはまったく関係ありません。これらの用語は、印刷待ち行列が構成されている場所を示します。印刷待ち行列が構成されている場所によってそのプリンタのサーバーが決まります。多数のプリンタが存在する建物で、同じ 1 つのシステムが印刷サーバーとして使用されることもよくあります。
プリンタとプリンタ設定に関するもう 1 つの観点は、プリンタが物理的に接続されている方法です。印刷サーバーにケーブルで直接接続されているプリンタもあります。このようなプリンタは接続されたプリンタと呼ばれます。デスクトップやサーバーにではなくネットワークに接続されているプリンタは、ネットワーク接続プリンタと呼ばれます。「ローカル」および「リモート」という用語は、印刷待ち行列の構成を示します。「直接接続」および「ネットワーク接続」という用語は、プリンタハードウェアの物理的な接続を示します。「接続プリンタ」または「ネットワーク接続プリンタ」と呼ぶ場合、それはプリンタが物理的に接続されている方法を示しています。「ローカルプリンタ」または「リモートプリンタ」と呼ぶ場合は、そのプリンタの印刷待ち行列がどのように定義されているかを示しています。プリンタがシステムに物理的に接続されている場合、その印刷待ち行列もローカルシステム上に定義されていることが多いため、これらの用語は混同されることがあります。同様に、ネットワークプリンタの印刷待ち行列は、ユーザーのローカルシステムから離れたリモートシステム上に定義されている可能性が高いでしょう。接続されたプリンタがローカルプリンタ、ネットワークプリンタがリモートプリンタと呼ばれることが多いのはこのためです。
IPP は、クライアントとサーバー間およびサーバーとプリンタ間の通信に使用される、比較的最近の業界標準ネットワーク印刷プロトコルです。このプロトコルは、プリンタとジョブ、これらのプリンタとジョブの標準属性、およびこれらのプリンタとジョブに対して実行できる一連の標準操作を備えた基本モデルを提供します。オブジェクト、属性、および操作は標準化されているため、IPP はクライアントとサーバーシステムの間の通信方法として使用されます。Oracle Solaris OS では、このプロトコルのサーバー側サポートは、IPP 待機サービスによって提供されます。Oracle Solaris OS での IPP のクライアント側サポートは、PAPI を介して実装されます。IPP のプリンタサポートは、URI インタフェーススクリプトを介して使用できます。
詳細な手順および基本情報については、このマニュアルの 「インターネット印刷プロトコルの構成」および付録 A インターネット印刷プロトコルの使用を参照してください。
BSD プロトコルとも呼ばれる RFC-1179 プロトコルは、LP 印刷サービスや Solaris 印刷マネージャーを使用して構成された印刷クライアント、印刷サーバー、ネットワーク接続プリンタの間の通信に広く使用されている、既存の有線プロトコルです。RFC (Request for Comments) 1179 では、ラインプリンタデーモンクライアントが印刷を制御するために使用するプロトコルが記述されています。RFC-1179 印刷プロトコルは、最初は BSD UNIX 向けに開発され、長期にわたり印刷用のクロスプラットフォーム標準となってきました。このプロトコルを使用すると、印刷ジョブの発行と取り消し、印刷ジョブの状態の取得など、基本的な印刷作業を実行できます。RFC-1179 プロトコルは、LPD ベースの印刷サーバーのほか、BSD 印刷プロトコルを受け入れる任意の印刷サーバーと通信できます。ネットワークに接続されたプリンタの多くは、ジョブデータを転送するためのオプションとしてこのプロトコルを提供します。
RFC-1179 プロトコルは、標準ネットワーク印刷プロトコルとして数十年にわたり使用されてきました。最初は、ごく少数の操作を実行するために設計されました。RFC-1179 プロトコルには、状態情報を表す共通の表現が欠如しています。また、このプロトコルで提供される印刷ジョブのオプションは、基本的なものだけです。一方、IPP の設計には、RFC-1179 プロトコルと BSD プロトコルには欠如している機能が含まれています。IPP を使用すると、さまざまな操作を実行できます。これらの操作は、共通の表現とエンコーディング方法を使用して、共通属性の基本セットを利用します。また、IPP では、印刷クライアントと印刷サーバーの間で暗号化と認証を使用することもできます。最後に、IPP は、下位互換性と相互運用性を維持しながら操作と属性を拡張するための手段を提供します。RFC-1179 プロトコルが進化した結果の 1 つとして、ベンダーの拡張機能にいくつかの衝突が発生しているため、印刷プロトコルの選択肢としては IPP が優先されるようになっています。
IPP を使用してプリンタを設定および管理する方法の詳細については、「インターネット印刷プロトコルの構成」および付録 A インターネット印刷プロトコルの使用を参照してください。
SMB プロトコルは、アプリケーションレベルのネットワークプロトコルであり、ネットワーク上のノード間でプリンタ、ファイルへのアクセス、シリアルポートを共有し、さまざまな通信を行うために主に使用されます。SMB は、主に Windows システムで使用される認証済みのプロセス間通信機構です。Oracle Solaris OS では、SMB プロトコルは主にプリンタの共有に使用されます。これらのプロセスはすべてネットワーク経由で実行されます。SMB は複数のプロトコル上で実行できます。
SMB はピアツーピア方式で動作します。クライアントはサーバーに特定の要求を行い、サーバーは適切に応答します。SMB サーバーは、自身のファイルシステムやほかの資源を、ネットワーク上のクライアントが使用できるようにします。Oracle Solaris OS では、SMB には、サービス管理機能 (SMF) によって管理される Samba のサーバー側サポートと、Samba のクライアント側サポート smbclient が含まれています。Windows でホストされているプリンタにアクセスするには、ローカル印刷待ち行列を設定する必要があります。これが必要になるのは、UNIX と Windows では印刷モデルが異なるためです。
Samba は、SMB プロトコルを使用する、オープンソースの SMB サーバーフリーウェアアプリケーションです。Samba により、Windows クライアントは UNIX サーバーに、UNIX クライアントは Windows サーバーにアクセスできるようになります。提供されるアクセスには、ファイルへのアクセスだけでなく、プリンタの共有といったほかのサービスへのアクセスも含まれます。さまざまな既存の UNIX システムで動作することが Samba の設計であり、制約でもあります。Samba は一連のデーモンおよびサービスとして実行されます。既存のカーネルを変更する必要はありません。Samba の詳細については、http://www.samba.org を参照してください。
Oracle Solaris OS の印刷アーキテクチャーは、ネットワーク印刷プロトコルを使用して、次の方法で印刷サービスと通信します。
クライアントとサーバーの間の通信
サーバーとプリンタの間の通信
Oracle Solaris ソフトウェアには、アプリケーション、ツールキット、印刷コマンド、および、印刷サービスと対話するアプリケーションプログラミングインターフェースが提供されています。この API は「PAPI」と呼ばれます。PAPI は、印刷サービスと直接通信するバックエンドの印刷サービスまたはプロトコルモジュールを動的にロードする、フロントエンドの API 実装から構成されています。これらの印刷サービスには、現在処理中の印刷ジョブまたは印刷待ち行列が含まれます。クライアントとサーバーの間の通信には、RFC-1179 プロトコルと IPP プロトコル、およびローカルの LP 印刷サービスと通信するためのサポートが含まれます。サーバーとプリンタの間の通信に関しては、ネットワーク印刷プロトコルのサポートにより、印刷サービスはネットワーク接続されたプリンタに印刷ジョブを直接送信することができます。
LP 印刷サービスや Solaris 印刷マネージャーでのサーバーとプリンタとの通信には、次のネットワークプロトコルのサポートが含まれます。
生の TCP (Transmission Control Protocol) ソケット
RFC-1179
IPP
SMB
印刷システムでは、印刷クライアントから印刷サーバーに印刷要求を送信するために 2 つの有線プロトコルが使用されます。次の表に、Solaris OS での印刷に使用できる印刷プロトコルの説明を示します。
表 1–1 サポートされている印刷プロトコル
ネットワーク印刷プロトコル |
サーバー側サポート |
クライアント側サポート |
詳細 |
---|---|---|---|
IPP (Internet Printing Protocol) |
IPP 待機サービスのサーバー側サポートは、Oracle Solaris 10 リリース以降で使用可能です。 |
Oracle Solaris の一部のリリースでサポートされています。 | |
RFC-1179 プロトコル |
Oracle Solaris のすべてのリリースでサポートされています。 |
Oracle Solaris のすべてのリリースでサポートされています。 | |
Samba 経由の SMB プロトコル 注 – Samba 経由の SMB プロトコルは、Linux サーバーや UNIX サーバーと Windows ベースのクライアントとの相互運用を可能にする実装です。 |
Solaris 9 OS 以降でサポートされています。 |
Solaris 9 OS 以降でサポートされています。 |
アプリケーション、ツールキット、および印刷コマンドは、指定された印刷待ち行列の printers.conf データベースエントリで見つかった printer-uri-supported 属性の値に基づいて、クライアントとサーバーの間の通信に使用するプロトコルを選択します。この値は、lpadmin コマンドでリモート印刷待ち行列へのアクセスを構成したり、アプリケーションが、参照されているインタフェースを使用して何らかのアクションを実行すると、自動的に生成および設定されます。
たとえば、Mozilla の使用中にドキュメントを印刷すると、次のような経路でプリンタへのアクセスが取得されます。
Mozilla -> lp -> PAPI
詳細は、printers.conf(4) のマニュアルページを参照してください。
lpadmin コマンドでは、printer-uri-supported の値が次の形式で生成されます。
{ipp|lpd}://server/printers/queue
printers.conf データベースのどの URI を使用するかを決定するために、lpadmin コマンドはリモート印刷サービスを検査します。リモート印刷サービスが IPP をサポートしている場合は、このプロトコルが BSD プロトコルより優先されます。ただし、lpadmin コマンドに -s オプションを指定し、別の URI を指定することで、自動プロトコル選択を上書きすることができます。詳細は、「サポートされているプリンタ URI 形式」を参照してください。
LP 印刷サブシステムは、RFC-1179 プロトコルとも呼ばれる BSD 印刷プロトコルと生の TCP (Transmission Control Protocol) を使用してプリンタと通信します。TCP は、インターネットの基本的な通信言語 (プロトコル) です。設定するプリンタにプリンタベンダーのマニュアルが付属している場合は、使用すべきプロトコルの情報が記載されています。TCP プロトコルは、ネットワークでの印刷にもっとも頻繁に使用されるプロトコルです。
次の表では、サポートされているプリンタ URI 形式について説明します。
表 1–2 サポートされている URI 形式
コマンド |
URI 形式 |
---|---|
lpsched |
lpsched://localhost/printers/queue このプリンタ URI スキーマは、URI で指定された印刷待ち行列にアクセスするために、ローカルの LP サービスと通信する場合にのみ使用できます。 |
lpd |
lpd://localhost/printers/queue[#extensions] この URI 形式は、URI. に指定されたホスト上の印刷待ち行列にアクセスする目的でローカルまたはリモートの印刷サービスと通信する場合に使用します。#solaris など、省略可能な #extensions を指定できます。#solaris が指定された場合、ホストは印刷ジョブの送信中に RFC-1179 プロトコルの Solaris 拡張を処理します。 |
ネットワークに接続されたプリンタでは、多くの場合、印刷サービスと通信する方法が複数サポートされています。印刷サービスと通信するためのもっとも一般的な方法は、デバイス上の既知のポートに生の TCP で接続することです。ほかの通信方法としては、RFC-1179 や IPP ネットワークプロトコルがあります。サーバーとプリンタの間の通信プロトコルは、次のいずれかの方法で新しい印刷待ち行列を追加するときに選択できます。
lpadmin コマンドを次のオプションとともに使用します。
# lpadmin -o protocol={bsd|tcp} -o dest=printer:queue-or-port -m netstandard{_foomatic} |
印刷サービスと通信するためのこの方法は、Solaris 2.6 OS で導入され、それ以降のすべての Oracle Solaris リリースで使用できます。
2 番目の方法は、lpadmin コマンドの -d オプションでデバイスを指定し、-m オプションで uri を指定することです。
印刷サービスと通信するためのこの方法は、以前の方法を置き換えることを目的としています。
サーバーとプリンタの間の通信に使用するプロトコルを決定する際は、プリンタベンダーのマニュアルで固有の情報を確認してください。マニュアルには、デバイスでサポートされている TCP ポート番号、RFC-1179 プリンタ名、IPP プリンタ URI などの情報が記載されています。ほとんどの場合、生の TCP ソケット通信を使用すると、もっとも信頼性の高い結果が得られます。
また、UNIX プラットフォームと Windows プラットフォームでは印刷サービスが異なるため、Windows でホストされているプリンタはネットワーク接続されたプリンタとして構成および管理するように注意してください。このようなプリンタを Oracle Solaris システムで使用する場合は、印刷待ち行列を作成する必要があります。このようなプリンタでは、サーバーとプリンタの間の通信に SMB プロトコルが使用される場合もあります。SMB プロトコルの詳細については、「SMB プロトコルの説明」を参照してください。
プリンタの設定方法や印刷待ち行列の構成方法の詳細については、「Solaris 印刷マネージャーを使用したプリンタの設定 (作業マップ)」および 「LP 印刷コマンドを使用したプリンタの設定 (作業マップ)」を参照してください。
Solaris 印刷マネージャーは Java テクノロジベースの GUI で、ローカルおよびリモートの印刷構成を管理できます。このツールは、ファイル、LDAP、NIS、および NIS+ の各ネームサービス環境で使用できます。
このツールを使用するには、次の要件を満たす必要があります。
スーパーユーザーとしてログインするか、同等の役割を引き受ける必要があります。
印刷管理プロファイルに登録する必要があります。
Solaris.print.admin 承認を持っている必要があります。
Solaris 印刷マネージャーは、プリンタ情報がネームサービスと組み合わせて使用される場合に、プリンタ情報を一元化します。プリンタ構成情報の格納には、ネームサービスの使用をお勧めします。ネームサービスを使用すると、ネットワーク上のすべてのシステムからプリンタ情報にアクセスできるようになるためです。これにより、プリンタ管理がより簡単になります。Solaris 印刷マネージャーは、印刷サーバー、印刷クライアント、ネームサービスデータベースにあるプリンタ情報を認識します。印刷クライアントが Solaris 2.6 リリース以降を実行している場合は、Solaris 印刷マネージャーを使用するのに変換作業は必要ありません。
Solaris 印刷マネージャーのパッケージは SUNWppm です。
「LP 印刷サービス」とは、ユーザーが作業を続けながらファイルを印刷できるようにするソフトウェアユーティリティーの集合です。当初、印刷サービスは「LP スプーラ」と呼ばれていました。「LP」はラインプリンタを意味しますが、現在ではレーザプリンタなどのさまざまな種類のプリンタも含まれます。「スプール」は、Simultaneous Peripheral Operations Online の頭文字です。
「LP 印刷サービス」は、LP 印刷サービスソフトウェア、システム管理者が提供する印刷フィルタ、およびハードウェア (プリンタ、システム、ネットワーク接続など) からなっています。
Solaris 10 5/08: LP 印刷クライアントのコマンドは、PAPI を利用して Solaris LP (lpsched)、RFC-1179 (BSD/LPD プロトコル)、および IPP ベースのサーバーと対話します。IPP サポートは、ネイティブな IPP サービスを使用して CUPS サーバーと対話できます。この API サポートが導入されたことで、BSD および SysV の一般的な印刷コマンドのいくつかは、PAPI インタフェースを使用するようになりました。その結果、新しいコマンドの実装は、さまざまな既存の印刷サービスと対話できます。この開発の一部には、IPP のサーバー側サポートが含まれています。このサポートもこの API の階層の上に置かれています。このサポートは、一連のプロトコル固有ライブラリおよび Apache モジュール (バージョン 1 および 2) として実装されます。印刷コマンドの実装と同様に、IPP 待機サービスも、PAPI をサポートしている任意の印刷サービスで使用できます。RFC-1179 のサーバー側サポートも PAPI の階層の上に置かれています。
LP 印刷サービスの詳細については、「LP 印刷サービス」を参照してください。
この節では、LP 印刷サービスで使用される印刷クライアントサーバー処理手順の概要について説明します。
印刷サーバーはローカルプリンタが接続されているシステムであり、プリンタがネットワーク上の他のシステムを利用できるようにします。次の図に、印刷手順の中で、印刷サーバーが印刷要求をプリンタに送信する処理を強調して示します。
印刷クライアントが印刷要求を発行する。
印刷要求が印刷クライアント上で処理される。
印刷要求が印刷サーバーに送信される。
印刷要求がプリンタに送信される。
プリンタから印刷出力される。
「印刷クライアント」とは、印刷要求を印刷サーバーに送信できるシステムのことです。
次の図に、印刷手順の中で、ユーザーが印刷クライアントから印刷要求を発行する処理を強調して示します。
次の図に、ユーザーが要求を発行してから印刷されるまでの、印刷要求の流れを示します。
ユーザーは印刷クライアントから印刷要求を出します。
印刷コマンドは印刷構成資源の階層をチェックして、印刷要求をどこに送信するか決定します。
印刷コマンドは、印刷要求を適切な印刷サーバーに直接送信します。印刷サーバーとしては、Berkley Software Distribution (BSD) 印刷プロトコルを受け付ける任意のサーバー、たとえば System V Release 4 (SVR4) (LP) 印刷サーバーや BSD LPD ベースの印刷サーバーと、IPP を受け付けるサーバーを使用できます。
印刷サーバーは印刷要求を適切なプリンタに送信します。
印刷要求が印刷されます。
印刷要求は、クライアントとサーバーが異なるシステムにある場合と同じ経路をたどります。要求は常に同じ経路をたどり、クライアントからサーバーに流れます。
次の図に、ユーザーがローカルプリンタ上に PostScript ファイルを印刷する要求を出したときに実行される処理を示します。ローカルプリンタとは、ユーザーのシステムに接続されたプリンタです。ローカルシステム上の lpsched デーモンがすべての処理を行います。
この処理には、以下が含まれます。
プリンタと内容形式の照合
デフォルトプリンタの特定、要求のフィルタリング
指定されたプリンタインタフェースプログラムの起動
プリンタインタフェースプログラムは、次のことを行います。
パナーページの印刷
プリンタ障害の検出
プリンタ障害ポリシーを、リセット、継続、または印刷ジョブのやり直しのどれかに決定する
最後に、インタフェースプログラムは lpcat プログラムを使用して、印刷要求をローカルプリンタのシリアルポートにダウンロードする
LP 印刷サービスには、lpsched というスケジューラデーモンが組み込まれています。スケジューラデーモンは、プリンタの設定と構成に関する情報を使用して LP システムファイルを更新します。
また lpsched デーモンは、次の図のように、印刷サーバー上のすべてのローカル印刷要求をスケジュールします。ユーザーは、アプリケーションまたはコマンド行から要求を出します。さらに、スケジューラはプリンタとフィルタの状態を追跡します。プリンタが 1 つの要求を印刷し終えた時に、印刷サーバー上の待ち行列に残っているものがあれば、スケジューラは次の要求をスケジュールします。
システムを再起動しなくても、svcadm disable application/print/server コマンドを使用してスケジューラを停止できます。その後、svcadm enable application/print/server コマンドを使用してスケジューラを再起動できます。各システムのスケジューラは、lp コマンドによってシステムに出された要求を管理します。
次の図は、印刷クライアントのユーザーが LPD ベースの印刷サーバーに印刷要求を出したときに実行される処理を示します。このコマンドは、直接印刷サーバーと接続して、自身の通信を処理します。
次の図は、LPD ベースの印刷クライアントが 印刷サーバーに印刷要求を出す様子を示しています。lpd デーモンは、印刷要求のローカル部分と印刷サーバーへの接続を処理します。印刷サーバー上の inetd プロセスは、ネットワーク印刷要求を待って、プロトコルアダプタを起動して要求を処理します。プロトコルアダプタは lpsched デーモンと通信し、このデーモンが印刷サーバー上で要求を処理します。
次の図は、印刷クライアントのユーザーが Solaris 印刷サーバーに印刷要求を出したときに実行される処理を示します。印刷クライアント上の印刷コマンドは、印刷サーバーと直接通信することにより、各印刷要求のローカル部分を処理します。
印刷サーバー上の inetd プロセスは、ネットワーク印刷要求を監視し、プロトコルアダプタを起動して、印刷サーバー上の lpsched デーモンと通信します。このデーモンが印刷要求を処理します。
印刷作業 |
説明内容 |
詳細 |
---|---|---|
ネットワーク印刷プロトコルを設定および管理します。 |
IPP、RFC-1179、および SMB ネットワーク印刷プロトコルの設定。 | |
Solaris 印刷マネージャーを使用してプリンタを設定および管理します。 |
印刷サーバーの設定、直接接続プリンタやネットワーク接続プリンタの追加、および印刷クライアントの追加。 | |
LP 印刷コマンドを使用してプリンタを設定および管理します。 |
印刷サーバーの設定、直接接続プリンタやネットワーク接続プリンタの追加、および印刷クライアントの追加。 | |
プリンタを管理します。 |
プリンタや印刷要求の管理。 | |
印刷サービスとプリンタをカスタマイズします。 |
印刷サービスのカスタマイズ。文字列セット、印刷フォーム、印刷フィルタ、および印刷フォントの管理。 | |
ネットワーク上のプリンタを管理します。 |
IPP、RFC-1179、および SMB ネットワークプロトコルを使用するプリンタや印刷ジョブの管理。 | |
PPD ファイルマネージャー (ppdmgr) を使用して PPD ファイルを管理します。 |
ppdmgr ユーティリティーによるシステム上の PPD ファイルの管理。 |