このパートでは、Solaris 環境で印刷サービスを管理する手順について説明します。次の章が含まれます。
ネットワーク上で印刷サービスを管理する場合の概要について説明します。印刷サーバー、印刷クライアント、および LP 印刷サービスを取り上げます。 |
|
ネットワーク上で印刷サービスの計画を作成する場合の概要について説明します。ネットワーク上のシステム資源の割り当てやプリンタの定義が含まれます。 |
|
システム上でプリンタを設定し、ネットワーク上の他のシステムが利用できるようにする詳しい手順を説明します。 |
|
プリンタの削除、印刷ポリシーの設定、印刷要求の管理など、プリンタを管理する詳しい手順を説明します。 |
|
文字セット、印刷フィルタ、フォーム、およびフォントを設定し管理する詳しい手順を説明します。 |
|
プリンタポート特性の調整や、サポートされないプリンタの terminfo エントリの追加など、LP 印刷サービスをカスタマイズする詳しい手順を説明します。 |
|
LP 印刷サービスの参照情報を説明します。 |
この章では、プリンタ、印刷クライアント、および LP 印刷サービスの管理について基本的なことがらを説明します。この章の内容は次のとおりです。
印刷管理の詳しい手順については、次の章を参照してください。
Solaris 2.6 印刷ソフトウェアは、以前の Solaris リリースの LP 印刷ソフトウェアよりも、より集中的な管理機能を提供します。NIS や NIS+ のネームサービスを使用して、簡単に印刷クライアントを設定および管理できます。
次に、Solaris 2.6 印刷ソフトウェアの特徴を示します。
印刷パッケージの再設計
印刷プロトコルアダプタ
SunSoft 印刷クライアント
ネットワークプリンタのサポート
このリリースでは、次の制限があります。
以前の Solaris 2.x リリースで s5 (System V 印刷プロトコル) として定義されていた印刷サーバーをサポートしません。
印刷クライアント側では印刷フィルタリングは利用できません。
Solaris 2.6 印刷パッケージの設計は見直され、印刷ソフトウェアのインストールはより柔軟に、よりモジュール化されました。また、印刷クライアントでは、インストールに必要なディスク容量を少なくできるようになりました。
次の機能が再設計されました。
カスタムインストールで、印刷クライアントにはクライアントソフトウェアだけをインストールできるようになりました。この結果、クライアントをより小さくできます。印刷サーバーには、すべてのパッケージ (クライアント用とサーバー用) がインストールされます。
デフォルトの状態ではすべてをインストールします。ただし、クライアントソフトウェアかサーバーソフトウェアのどちらか一方だけをインストールすることもできます。印刷サーバーには、クライアントソフトウェアをインストールする必要があります。
PostScript フィルタソフトウェアは SUNWpsf 印刷パッケージに含まれています。
表 39-1 に、新しい印刷パッケージのセットを示します。
表 39-1 Solaris 2.6 印刷パッケージ
パッケージのインスタンス |
パッケージ名 |
ベースディレクトリ |
---|---|---|
SUNWpcr |
SunSoft 印刷 - クライアント |
ルート (/) |
SUNWpcu |
SunSoft 印刷 - クライアント |
usr |
SUNWpsr |
SunSoft 印刷 - LP サーバー |
ルート (/) |
SUNWpsu |
SunSoft 印刷 - LP サーバー |
usr |
SUNWpsf |
PostScript フィルタ |
usr |
SUNWscplp |
SunSoft 印刷 - ソース互換性 |
usr |
次の印刷パッケージは削除されました。
SUNWlpr - LP 印刷サービス (ルート)
SUNWlpu - LP 印刷サービス - クライアント (usr)
SUNWlps - LP 印刷サービス - サーバー (usr)
SUNWscpu に含まれていた印刷コマンドは、SUNWscplp (SunSoft 印刷 - ソース互換性) に移動されました。
Solaris 2.6 印刷プロトコルアダプタは、 LP スプーラの受信側のサービスアクセス機能 (SAF)、ネットワークリスナー、および lpNet を、よりモジュール化された最新の設計に置き換えるものです。
これによって、次の機能が提供されます。
完全な BSD 印刷プロトコル実装に、Solaris 用の拡張機能が追加されました。
複数のスプールシステムが同じホスト上に共存して、BSD 印刷プロトコルにアクセスできます。
他の印刷プロトコル (Apple、Novell など) をサポートするように、Sun 以外のアプリケーション開発者が拡張できます。
以前の Solaris 2.x リリースの印刷クライアントが「BSD」プロトコルで構成されている場合には、新しい印刷プロトコルアダプタと互換性があります。「BSD」プロトコルが使用されていない場合、Solstice AdminTools、Solstice プリンタマネージャ、または lpsystem コマンドを使用して、以前の Solaris 2.x 印刷クライアントの構成を「BSD」プロトコルを使用するように変更しなければなりません。
以前、SunSoft 印刷クライアントソフトウェアは別製品としてリリースされていました。つまり、Solaris Migration CD で利用できる管理製品 Solstice AdminSuite 2.x 群の一部でした。現在 SunSoft 印刷クライアントは、Solaris 2.6 リリースに含まれます。
SunSoft 印刷クライアントソフトウェアは、NIS マップ、NIS+ テーブル、または 1 つのファイルを使用して、Solaris 2.6 リリースにおいてクライアントの集中的な管理を提供します。印刷クライアントソフトウェアには、次の特徴があります。
クライアントシステムの /etc/lp ディレクトリ構造は構成データベースに置き換えられて、次に格納できるようになりました。
ユーザーファイル ($HOME/.printers)
システムファイル (/etc/prints.conf)
NIS マップ (printers.conf.byname)
NIS+ FNS コンテキスト
クライアントソフトウェアは、より効率的な実装を利用して、クライアントのオーバーヘッドを減らし、印刷のステータス要求により速く、より正確な応答を提供します。
printers.conf ファイルを作成するには、 lpset(1M) コマンドを使用します。lpset コマンドを使用する方法については、第 41 章「プリンタの設定手順」を参照してください。
以前の Solaris リリースよりも実質的に小さくなっています (合計で 183 K バイト)。
RFC-1179 で述べられている BSD プロトコルと相互運用できます。これには、SunOS 4.x、Solaris 2.x、HPUX などが含まれます。印刷クライアントソフトウェアパッケージは SUNWpcr と SUNWpcu です。
Solaris 2.6 印刷ソフトウェアは以前の Solaris リリースよりも、次の点でネットワークプリンタのサポートが優れています。
ネットワークプリンタをサポートするために、新しいインタフェーススクリプト /usr/lib/lp/model/netstandard が特別に設計されました。このスクリプトは、ネットワーク印刷に必要なスプーラと印刷データベースの情報を収集して、印刷出力モジュールに渡します。
新しい印刷出力モジュール netpr が netstandard インタフェーススクリプトから呼び出されます。このモジュールは、プリンタへのネットワーク接続を開き、正しいプロトコル命令を作成し、データをプリンタに送信することによって、印刷ジョブを印刷します。netpr プログラムは、現在 BSD 印刷プロトコルと TCP パススルーの 2 つのプロトコルをサポートしています。
lpadmin -o コマンドに、ネットワークプリンタの宛先名、プロトコル、およびタイムアウト値を指定する新しい引数が使用できます。
Solstice AdminSuite 2.3 プリンタマネージャを使用して、ネットワークプリンタを設定および管理できます。
ネットワークプリンタの設定の詳細は、第 41 章「プリンタの設定手順」または『Solstice AdminSuite 2.3 管理ガイド』を参照してください。
Solaris 2.6 印刷ソフトウェアは、ネットワーク上のプリンタへのクライアントのアクセスを設定および管理するための環境を提供します。
Solaris 2.6 印刷ソフトウェアは、次の構成要素からなります。
SunSoft 印刷クライアントソフトウェア。以前は、管理ツールの Solstice AdminSuite セットでしか利用できませんでした。このソフトウェアは、印刷クライアントがネームサービス経由でプリンタを利用できるようになる機能を提供します。
AdminTool。ローカルシステムにおける印刷を管理するために使用されるグラフィカルユーザーインタフェースです。
LP 印刷サービスコマンド。プリンタを設定および管理するために使用されるコマンド行インタフェースです。上記機能を提供し、さらに他の印刷管理ツールにはない機能も提供します。
Solstice AdminSuite プリンタマネージャ。ネームサービス環境でプリンタを管理するために使用されるグラフィカルユーザーインタフェースです。Solaris 2.6 サーバー製品で利用できます。
表 39-2 に、Solaris 2.6 印刷構成要素の特徴をまとめています。
表 39-2 Solaris 2.6 印刷構成要素の特徴
構成要素 |
グラフィカルユーザーインタフェース |
印刷クライアントを設定できる |
印刷クライアントと印刷サーバーを管理できる |
NIS か NIS+ を使用する |
---|---|---|---|---|
SunSoft 印刷クライアント |
いいえ |
はい |
いいえ |
はい |
AdminTool |
はい |
はい |
はい |
いいえ |
LP コマンド |
いいえ |
はい |
はい |
いいえ |
Solstice AdminSuite |
はい |
はい |
はい |
はい |
印刷を設定および管理するために Solstice プリンタマネージャを使用しない場合、他の構成要素をいくつか組み合わせて使用しなければ、Solaris 2.6 環境での印刷を完全には管理できません。
Solaris 2.6 印刷クライアントソフトウェアと、Solstice AdminSuite プリンタマネージャは、ネットワーク上のプリンタを設定し、管理するためのグラフィカルな解決方法を提供します。Solaris 2.6 印刷クライアントソフトウェアの特長は、ネームサービス (NIS または NIS+) をサポートし、ネットワークの印刷管理を集中化できることです。コマンド行で lpadmin を使用しても各システムのプリンタを構成できます。
システム管理ツール (Administration Tool または Admintool) は Solaris 環境で別の方法によりプリンタをインストールします。グラフィカルユーザーインタフェースによってプリンタの設定と管理を簡単に行うことができます。Admintool の使用方法については、第 41 章「プリンタの設定手順」を参照してください。
Admintool ではリモートシステムに変更を加えることはできないので、プリンタを接続したシステム上で実行しなければなりません。プリンタを設定するときに、Admintool はシステムの /etc/printers.conf と /etc/lp ディレクトリに適切な変更を加えます。SunOS 5.x オペレーティングシステムを実行中の場合にのみ、Admintool を使用してシステムを印刷サーバーまたは印刷クライアントとして設定できます。SunOS 4.x の印刷サーバーとクライアントを設定する方法については、SunOS 4.x のマニュアルを参照してください。
印刷サービスの設定作業のほとんどは、Admintool を使用して実行できます。ただし、スクリプトの作成などの特殊なニーズがあれば、LP 印刷サービスコマンド (Admintool の基礎となるコマンド) を直接使用できます。コマンドによる設定処理については、「LP コマンドを使用して、印刷クライアントにアクセスを追加する方法」を参照してください。
表 39-3 からプリンタ設定情報を見つけてください。
表 39-3 プリンタ設定情報の参照先
情報 |
参照先 |
---|---|
Admintool を使用して印刷クライアントと印刷サーバーを設定する | |
ネームサービスを使用して印刷クライアントが利用できるようにプリンタ情報を設定する | |
LP コマンドを使用してネットワークプリンタを設定する | |
Solstice プリンタマネージャを使用して印刷 (ネットワークプリンタも含む) を設定および管理する |
『Solstice AdminSuite 2.3 管理ガイド』 |
LP コマンドを使用してプリンタを管理する |
「LP 印刷サービス」とは、ユーザーが作業を続けながらファイルを印刷できるようにするソフトウェアユーティリティの集合です。当初、印刷サービスは LP スプーラと呼ばれていました (LP はラインプリンタを意味しますが、現在ではレーザプリンタなど、他の多数のプリンタも含まれています。スプール (spool) は、system peripheral operation off-line の頭文字です)。
印刷サービスは、LP 印刷サービスソフトウェアとスプーラ (SunSoft 印刷クライアントソフトウェアが含まれます)、管理者が提供する印刷フィルタ、ハードウェア (プリンタ、システム、およびネットワーク接続) からなっています。
LP 印刷サービスの参照情報については、第 45 章「LP 印刷サービスの参照情報」を参照してください。
LP 印刷サービスについてのその他の情報について、次に説明します。
「ネットワークプリンタ」とは、印刷クライアントに印刷サービスを提供する、印刷サーバーに直接ケーブルで接続されていないハードウェアデバイスのことです。ネットワークプリンタは、独自のシステム名と IP アドレスを持っていて、ネットワークに直接接続されています。
ネットワークプリンタは、多くの場合、プリンタベンダーが提供するソフトウェアによりサポートされます。プリンタベンダー提供のソフトウェアがある場合は、それを利用することを強く推奨します。ネットワークプリンタのベンダーがソフトウェアサポートを提供していない場合、Sun が提供するソフトウェアを利用できます。このソフトウェアはネットワークプリンタの汎用サポートを提供するものであって、必ずしもプリンタで利用できるすべての機能を使用できるものではありません。
ネットワークプリンタの設定手順については、第 41 章「プリンタの設定手順」を参照してください。
印刷サーバーと印刷クライアントを設定し終わったら、以下のような多数の管理作業を頻繁に実行しなければならない場合があります。
プリンタとリモートプリンタへのアクセスを削除する
プリンタの状態をチェックする
印刷スケジューラを再起動する
プリンタ管理作業を実行する手順については、第 42 章「プリンタの管理手順」を参照してください。
ネットワーク上のプリンタの定義を設定することによって、より効果的な印刷環境をユーザーに提供できます。たとえば、サイトにあるすべてのプリンタに説明を付ければ、ユーザーはプリンタがどこにあるのかを見つけやすくなります。あるいは、プリンタのクラスを定義すれば、印刷要求を速く処理できます。
プリンタ定義の設定については、第 40 章「ネットワーク上でのプリンタの計画方法の概要」を参照してください。
作業環境とネットワーク上のプリンタの型式に応じて、LP 印刷サービスのプリンタ固有の機能を設定し、管理する必要があります。たとえば、複数の印字ホイール、フィルタ、フォームを複数のプリンタに割り当てることができます。文字セット、印刷フィルタ、フォーム、およびフォントを設定し管理する方法の手順については、第 43 章「文字セット、フィルタ、フォーム、フォントの管理手順」を参照してください。
LP 印刷サービスは、ほとんどのプリンタと印刷ニーズに対処できる程度の柔軟性を持つように設計されていますが、あらゆる状況に対処できるわけではありません。LP 印刷サービスの標準機能では対処できない印刷要求が発生する可能性があります。また、LP 印刷サービスによるプリンタの処理方法に当てはまらないプリンタを使用することもあります。
LP 印刷サービスを次のような方法でカスタマイズできます。
プリンタポート特性の調整
terminfo データベースの調整
プリンタインタフェースプログラムのカスタマイズ
印刷フィルタの作成
フォームの定義
LP 印刷サービスのカスタマイズの概要と手順については、第 44 章「LP 印刷サービスのカスタマイズの手順」を参照してください。
この節では、SunSoft 印刷クライアントソフトウェアがどのように動作するかの概要を説明します。
図 39-1 は、ユーザーが要求を発行してから印刷されるまでの、印刷要求の流れを示しています。
ユーザーは SunSoft 印刷クライアントコマンドを使用して、SunSoft 印刷クライアントから印刷要求を出します。
印刷クライアントコマンドは印刷構成資源の階層をチェックして、どこに印刷要求を送信するかを決定します。
印刷クライアントコマンドは印刷要求を適切な印刷サーバーに直接送信します。印刷サーバーは、BSD 印刷プロトコルを受け付ける任意のサーバーです。SVR4 (LP) 印刷サーバーと BSD 印刷サーバー (SunOS 4.x の BSD 印刷サーバーなど) も含みます。
印刷サーバーは印刷要求を適切なプリンタに送信します。
印刷要求が印刷されます。
この節では、印刷要求を印刷サーバーに送信できるシステムである「印刷クライアント」、および印刷クライアントが印刷要求を発行するための印刷コマンドを中心に説明します。
図 39-2 は、印刷手順の中で、ユーザーが SunSoft 印刷クライアントから印刷要求を出した部分を強調して示しています。
システムに SunSoft 印刷クライアントソフトウェアをインストールして、リモートプリンタにアクセスできるようにすると、そのシステムは SunSoft 印刷クライアントになります。SunSoft 印刷クライアントコマンドの名前と出力は、以前の Solaris リリースの印刷コマンドと同じです。
Solaris 2.6 の SunSoft 印刷クライアントコマンドを使用すれば、クライアントシステムは、より効率的な印刷クライアントになります。このコマンドがプリンタ構成情報を検出する際には、多くの選択肢があります。また、クライアントは印刷サーバーと直接通信します。以前の Solaris オペレーティング環境では、印刷クライアントはこのような利点を持っていませんでした。
Solaris 2.6 の SunSoft 印刷クライアントコマンドは、次のような特長を持っています。
プリンタ情報の検出に、より多くの選択肢があります。
SunSoft 印刷クライアントコマンドは次の資源をチェックして、プリンタとプリンタ構成情報を検出します。
コマンド行インタフェース
ユーザーのホームディレクトリにあるプリンタ別名ファイル
ローカル (印刷クライアント) の構成ファイル
ネットワークの (共有の) 構成ファイル (ネームサービスを使用している場合)
クライアントが要求を印刷サーバーに直接出すことができます。
SunSoft 印刷クライアントは、その要求を印刷サーバーの待ち行列に送信します。つまり、クライアントがローカルの待ち行列を持つ必要はありません。クライアントが印刷要求を一時スプール領域に書き込むのは、印刷サーバーが利用できない場合か、エラーが発生した場合だけです。この効率的なサーバーへの経路によって、印刷クライアントの資源の使用が減り、印刷障害が発生する機会が減り、したがって性能が向上します。
この節では、SunSoft 印刷クライアントコマンドがプリンタ名とプリンタ構成情報を検出するために使用する資源を説明します。
SunSoft 印刷クライアントコマンドは、ネットワーク上のすべてのプリンタのプリンタ構成情報を格納するネットワーク (共有) 資源である、ネームサービスを使用できます。ネームサービス (NIS または NIS+) は、プリンタ構成の管理を簡単にします。プリンタをネームサービスに追加すると、ネットワーク上のすべての SunSoft 印刷クライアントは、そのプリンタにアクセスできます。
図 39-3 は、印刷手順の中で、SunSoft 印刷クライアントコマンドがプリンタ構成資源の階層をチェックして、どこに印刷要求を送信するかを決定する部分を強調して示しています。
図 39-4 に示すように、SunSoft 印刷クライアントコマンドがプリンタとプリンタ構成情報を検出するには、多数の選択肢があります。
ユーザーは lp コマンドまたは lpr コマンドを使用して、SunSoft 印刷クライアントから印刷要求を出します。ユーザーは、次の 3 つの形式のいずれかで、宛先のプリンタ名またはプリンタクラスを指定できます。
単独名形式。次の例に示すように、印刷コマンドとオプションの後にプリンタ名またはプリンタクラスが続きます。
% lp -d neptune filename
POSIX 形式。次の例に示すように、印刷コマンドとオプションの後に server:printer が続きます。
% lpr -P galaxy:neptune filename
コンテキストベース形式。次の例に示すように、『Solaris 2.6 Software Developer AnswerBook』の『Federated Naming Service Programming Guide』で定義されているように指定します。
% lpr -d thisdept/service/printer/printer-name filename
印刷コマンドは、次のようにしてプリンタとプリンタ構成情報を検出します。
ユーザーが宛先のプリンタ名またはプリンタクラスを 3 つの有効な形式のうちの 1 つで指定しているかどうかをチェックします。
ユーザーがプリンタ名またはプリンタクラスを有効な形式で指定していなかった場合は、ユーザーの PRINTER 環境変数か LPDEST 環境変数でデフォルトプリンタ名をチェックします。
デフォルトプリンタ用の環境変数も定義されていなかった場合は、ユーザーのホームディレクトリの .printers ファイルで _default に設定されたプリンタ別名をチェックします。
.printers ファイルに _default に設定されたプリンタ別名が見つからなかった場合は、SunSoft 印刷クライアントの /etc/printers.conf ファイルで構成情報をチェックします。
/etc/printers.conf ファイルにプリンタが見つからなかった場合は、(もしあれば) ネームサービス (NIS または NIS+) をチェックします。
プリンタを検出する際に SunSoft 印刷クライアントが用いる方法には、次の利点があります。
ネームサービス (NIS または NIS+) を使用して、プリンタ情報を 1 つの場所に格納できます。これは、SunSoft 印刷クライアントソフトウェアの最も重要な機能です。プリンタを追加して、ネットワーク上のすべての SunSoft 印刷クライアントで利用できるようにするには、ネームサービスにプリンタ情報を入力するだけです。プリンタの変更や削除にも同じことが適用されます。ネームサービス中のプリンタ情報は、すべての SunSoft 印刷クライアントで利用できます。
ユーザーは自分の .printers ファイルを用いて、プリンタ情報をカスタマイズできます。SunSoft 印刷クライアントがネームサービスにリストされているプリンタを知っている場合でも、クライアントのプリンタ構成ファイルをカスタマイズすれば、印刷要求を取り消したり状態情報を取得したりするときに、プリンタ別名を使用して特定のプリンタだけを検出することも可能です。
ネームサービスを使用しない場合でも、印刷の設定と管理にかかる時間を減らすことは可能です。このためには、ネットワーク上のすべてのプリンタ用の /etc/printers.conf のマスターファイルを作成します。そして、そのファイルを SunSoft 印刷クライアントにコピーします。/etc/printers.conf ファイルを使用する方法の詳細は、第 41 章「プリンタの設定手順」を参照してください。
SunSoft 印刷クライアントソフトウェアは、POSIX 形式の名前を使用します。つまり、印刷クライアントは、印刷クライアントまたはネームサービスに定義されていないプリンタにアクセスできることを意味します。
ネームサービスは、ネットワーク用のプリンタ構成情報を追加、変更、および削除するために最も効率的な方法を提供します。ほとんどすべてのサイトはネームサービスを使用することで大きな恩恵を受けます。1 つの例外は、2、3 台のプリンタと印刷クライアントしかない非常に小さなネットワークです。
概要のこの節では、ローカルプリンタが接続されていて、ネットワーク上の他のシステムにプリンタを利用できるようにするシステムである、印刷サーバーを中心に説明します。図 39-5 は、SunSoft 印刷プロセスの中で、印刷サーバーが印刷要求をプリンタに送信する部分を強調して示しています。
Solaris 2.6 の SunSoft 印刷クライアントコマンドは、BSD 印刷プロトコルを使用します。このプロトコルの大きな利点の 1 つは、さまざまな印刷サーバーと通信できることです。
SunOS 4.x BSD (LPD) 印刷サーバー
SunOS 5.x SVR4 (LP) 印刷サーバー
BSD 印刷プロトコルを使用できる、その他の印刷サーバーまたはプリンタ
BSD 印刷プロトコルは業界標準です。幅広く使用され、さまざまなメーカーの異なるタイプのシステム間で互換性を提供します。Sun は、将来の相互運用性を提供するために、BSD 印刷プロトコルをサポートします。
次に第 41 章「プリンタの設定手順」に進みます。
SunSoft 印刷クライアントを更新して、サイトにある既存のプリンタにアクセスする
SunSoft 印刷クライアントソフトウェアで新しいプリンタを設定する
計画を立てるための情報が必要な場合は、第 40 章「ネットワーク上でのプリンタの計画方法の概要」を参照してください。
ネットワーク上のプリンタを設定する目的は、ユーザーが 1 つまたは複数のプリンタにアクセスできるようにすることです。この節では、最も効率よくネットワーク間でプリンタを分散する方法とプリンタ設定を計画する方法について説明します。
印刷管理作業の手順については、次の章を参照してください。
管理者として、各プリンタを 1 台のシステム専用にするのが効率がよいか、多数のシステムが利用できるようにするのがよいかを判断しなければなりません。ネットワーク環境では、複数の印刷サーバー上にプリンタを分散するのが通常は最もよい方法です。複数の印刷サーバーを設定する利点は、ある印刷サーバーに問題が発生しても、別の印刷サーバーに印刷要求を振り替えられることです。
集中化した印刷構成を採用した場合も、使い勝手をよくしたり、応答時間を短縮したりするために、プリンタをユーザーのシステムに接続できます。ユーザーのシステムに接続されたプリンタも、ネットワーク上の他のシステムから利用できます。
図 40-1 は、集中化印刷構成を採用した場合もプリンタをユーザーのシステムに接続できる例を示しています。
どのシステムにローカルプリンタを接続し、どのシステムでは他のシステム上のプリンタを使用するかを決定する必要があります。ローカルプリンタを接続し、そのプリンタをネットワーク経由で他のシステムでも利用できるようにしているシステムを「印刷サーバー」と呼びます。印刷サーバーに印刷要求を送るシステムを「印刷クライアント」と呼びます。
LP 印刷サービスは、Solaris 環境で印刷サービスを管理するソフトウェアです。プリンタをシステムに物理的に接続するだけではなく、LP 印刷サービスに対してプリンタの特性を定義し、システムを印刷サーバーにしなければなりません。印刷サーバーを設定し終わったら、他のシステムを印刷クライアントとして設定できます。
印刷サーバーと印刷クライアントは、SunOS オペレーティングシステムの異なるバージョンを実行できます。SunOS 5.x オペレーティングシステムが動作しているシステムは、SunOS 4.X オペレーティングシステムを実行する既存の印刷サーバーに出力でき、その逆の出力も可能です。
SunOS 5.x は Solaris 2.x オペレーティング環境に含まれます。
図 40-2 は、SunOS 5.x と SunOS 4.x のオペレーティングシステムが動作しているシステムからなるネットワーク上の印刷構成の例を示しています。
プリンタは、スタンドアロンシステムまたはネットワーク上の任意のシステムに接続できます。ネットワークに接続されていて、プリンタを備えているシステムは、印刷負荷を管理できる十分な資源があれば、どれでも印刷サーバーとして使用できます。
「スプーリング空間」とは、印刷待ち行列内で要求を格納し、処理するためのディスク空間です。スプーリング空間は、どのシステムを印刷サーバーとして指定するかを決定する場合の唯一重要な要素です。ユーザーがファイルの印刷要求を出すと、それらのファイルは印刷が完了するまで /var/spool/lp ディレクトリに格納されます。/var ディレクトリのサイズは、ディスクのサイズとディスクのパーティション分割方法によって異なります。スプーリング空間は、印刷サーバーのハードディスク上の /var ディレクトリに割り当てられるか、ファイルサーバーからマウントされてネットワーク上でアクセスされます。
/var が別のスライスとして作成されていない場合、/var ディレクトリはルート (/) ファイルシステムの空間を使用します。これは、不十分な空間になる可能性があります。
システムを印刷サーバーの候補として評価するときは、利用できるディスク空間を考慮してください。大きなスプールディレクトリでは、600M バイトのディスク空間を消費することもあります。印刷サーバーとして指定できるシステム上で、ディスク空間のサイズと分割設定を調べてください。
また、印刷のニーズと印刷クライアントシステムの利用パターンを慎重に調べてください。小さなグループのユーザーが短い電子メールメッセージ、つまり複雑なフォームを必要としない単純な ASCII ファイルだけを印刷する場合は、20〜25M バイトのディスク空間を /var に割り当てた印刷サーバーで十分でしょう。ただし、多数の印刷クライアントユーザーが長い文書、ビットマップ、またはラスタイメージファイルを印刷する場合は、スプーリング空間が頻繁にフルになります。ユーザーがジョブを印刷待ち行列に入れることができないと、作業の流れは中断してしまいます。より多くのスプーリング空間を要求すると、システム管理者はスプーリング用のディスク空間を追加するか、異なるシステムをグループの印刷サーバーとして指定しなくてはならない場合があります。
印刷サーバーの小さなパーティションに /var ディレクトリがあり、それ以外に大量のディスクを利用できる場合は、その空間を印刷サーバーの /var ディレクトリにマウントすることにより、スプーリング空間として使用できます。ファイルシステムのマウントと vfstab ファイルの編集方法については、第 28 章「ファイルシステムのマウントとマウント解除の手順」を参照してください。
Solaris 環境で実行するには、少なくとも 16M バイトのメモリーが必要です。印刷サーバー用にメモリーを追加する必要はありません。ただし、メモリーが多ければ、印刷要求のフィルタリング処理が高速になります。
印刷サーバー上のスワップ空間は、LP 印刷サービスを処理するのに十分な量を割り当ててください。スワップ空間を増やす方法については、第 30 章「スワップ空間の追加構成の手順」を参照してください。
最適の性能を発揮させるには、印刷サーバーにハードディスクとローカル /var ディレクトリが必要です。印刷サーバー用のスプーリング空間をローカルのハードディスク上にマウントしてください。印刷サーバーに専用のハードディスクとローカルの /var ディレクトリがあれば、印刷処理ははるかに高速になり、印刷要求の処理に必要な時間をより正確に予測できます。
この節では、Solaris 環境で印刷するための計画の立て方の概要を説明します。
プリンタ名、プリンタの説明、プリンタポートなどのプリンタの定義の設定
プリンタタイプとファイル内容の形式の選択
障害通知とデフォルトプリンタの宛先の設定
バナーページを設定するかどうか、あるいはプリンタへのユーザーのアクセスを制限するかどうかの決定
プリンタクラスと障害回復の設定
ネットワーク上でのプリンタの定義は、より効率的な印刷環境をユーザーに提供するための継続的な作業です。この作業によって、たとえばユーザーがプリンタの位置を見つけやすいようにすべてのプリンタのパラメタを設定したり、プリンタのクラスを定義して印刷要求への応答時間を短縮したりできます。
lpadmin コマンドを使用すると、すべての印刷定義を設定できますが、Admintool を使用するとプリンタのインストールまたは変更時にその一部のみを設定できます。表 40-1 は、印刷定義と、その定義を Admintool で割り当てることができるかどうかを示しています。
表 40-1 Admintool で設定される印刷定義
印刷定義 |
Admintool で設定できるか |
---|---|
設定できる |
|
設定できる |
|
設定できる |
|
設定できる |
|
設定できる。ただし lpadmin コマンドより機能は少ない |
|
設定できる。ただし lpadmin コマンドより機能は少ない |
|
設定できる |
|
設定できる。ただし lpadmin コマンドより機能は少ない |
|
設定できる。ただし lpadmin コマンドより機能は少ない |
|
設定できない |
|
設定できない |
システムにプリンタを追加するときは、その「プリンタ名」を指定します。プリンタ名は、次の規則に従ってください。
管理ドメイン内のすべてのプリンタ間で一意であること
最大 14 文字までの英数字 (ハイフンと下線も含む) であること
覚えやすく、プリンタのタイプ、場所、印刷サーバー名などを識別できること
サイトに合った命名規則を設定してください。たとえば、ネットワーク上で異なるタイプのプリンタを使用する場合は、プリンタ名の一部にプリンタタイプを含めると、ユーザーは適切なプリンタを選択しやすくなります。たとえば、PostScript プリンタは文字 PS で識別できます。ただし、サイトのプリンタがすべて PostScript プリンタである場合は、PS というイニシャルをプリンタ名の一部として含める必要はありません。
lpadmin -D コマンドまたは Admintool を使用すると、プリンタに説明を割り当てることができます。プリンタに割り当てる説明には、ユーザーがプリンタを識別できるような情報を含める必要があります。プリンタが設置されている部屋番号、プリンタのタイプやメーカー、印刷に問題がある場合に連絡する担当者名などを含めることができます。
次のコマンドでプリンタの説明を調べることができます。
$ lpstat -D -p printer-name
プリンタのインストール時、またはその設定を後から変更するときに、lpadmin -p printer-name -v device-name コマンドまたは Admintool を使用して、プリンタの接続先となるデバイス、つまり「プリンタポート」を指定できます。
ほとんどのシステムが、2 つのシリアルポートと 1 つのパラレルポートを持っています。システムにポートを追加しないかぎり、3 台以上のシリアルプリンタおよび 2 台以上のパラレルプリンタを接続できません。
Admintool を使用すると、/dev/term/a または /dev/term/b を選択するか、「その他 (Other)」を選択して印刷サーバーで認識されるポート名を指定できます。これらのオプションには、lpadmin コマンドと同じ柔軟性があります。
LP 印刷サービスは、標準プリンタインタフェースプログラムからの設定を使用してプリンタポートを初期設定します。プリンタインタフェースプログラムの詳細は、「印刷フィルタの管理」を参照してください。デフォルト設定で機能しないパラレルプリンタやシリアルプリンタがある場合は、「プリンタポート特性の調整」のポート設定をカスタマイズする方法を参照してください。
x86 搭載システムで複数のポートを使用している場合、デフォルトでは最初のポートだけが有効です。2 番目以降のポートはデフォルトでは無効です。複数のポートを使用するためには、追加の asy (シリアル) ポートや lp (パラレル) ポートごとに、デバイスドライバのポート構成ファイルを手作業で編集しなければなりません。x86 ポート構成ファイルのパスは、次のとおりです。
/platform/i86pc/kernel/drv/asy.conf
/platform/i86pc/kernel/drv/lp.conf
x86 システムのシリアルポートとパラレルポートを構成する方法については、『Solaris 2.6 情報ライブラリ (Intel 版)』を参照してください。
プリンタタイプとは、プリンタの種類を表す一般名です。プリンタタイプは、プリンタの様々な制御シーケンスが入っている terminfo データベースエントリを識別します。通常、プリンタタイプはメーカーのモデル名からとります。たとえば、DECwriter のプリンタタイプ名は decwriter です。ただし、共通プリンタタイプ PS はこの規則に従いません。PS は LaserWriter I や LaserWriterII プリンタなど、多くの PostScript プリンタモデルのプリンタタイプとして使用されます。
lpadmin -T コマンドまたは Admintool を使用すると、プリンタタイプを指定できます。Admintool では、プリンタのインストール時にのみプリンタタイプを指定できます。既存のプリンタのタイプを変更したい場合は、Admintool を使用してそのプリンタを削除してインストールし直さなければなりません。既存のプリンタ以外の場合、lpadmin コマンドによりプリンタタイプを変更します。
Admintool を使用すると、メニューからプリンタタイプを選択するか、「その他 (Other)」を選択して terminfo データベース内でプリンタタイプを指定できます。この方法には、lpadmin コマンドと同じ機能があります。
各プリンタタイプに関する情報は、terminfo データベース (/usr/share/lib/terminfo) に格納されています。この情報には、プリンタの機能と初期設定制御データが含まれます。インストールするプリンタは、terminfo データベース内のエントリに対応していなければなりません。
$ pwd /usr/share/lib/terminfo $ ls 1 4 7 A M a d g j m p s u x 2 5 8 B P b e h k n q t v y 3 6 9 H S c f i l o r ti w z $
各サブディレクトリには、端末またはプリンタに関してコンパイル済みのデータベースエントリが入っています。各エントリは、プリンタまたは端末のタイプの頭文字別に編成されています。たとえば、Epson プリンタがある場合は、/usr/share/lib/terminfo/e 内を探すと、Epson プリンタの特定のモデルが見つかります。
$ cd /usr/share/lib/terminfo/e $ ls emots ep2500+high ep48 ergo4000 exidy2500 env230 ep2500+low epson250 esprit envision230 ep40 epson2500-80 ethernet ep2500+basic ep4000 epson2500-h ex3000 ep2500+color ep4080 epson2500-hi8 exidy $
上記のように、Epson プリンタのエントリがあります。
NEC プリンタがある場合は、/usr/share/lib/terminfo/n ディレクトリ内を探すと、使用中の NEC プリンタモデルが見つかります。
$ cd /usr/share/lib/terminfo/n $ ls ncr7900 ncr7901 netty-Tabs newhpkeyboard ncr7900-na nec netty-vi nuc ncr7900i net network nucterm ncr7900i-na netronics netx ncr7900iv netty newhp $
上記のように、このディレクトリには、NEC のエントリが含まれています。
ローカル PostScript プリンタの場合は、プリンタタイプとして PostScript (PS) または Reverse PostScript (PSR) を使用します。使用するプリンタが PostScript をサポートしていれば、プリンタタイプが terminfo データベースに含まれていても、PS または PSR を選択してください。
PostScript プリンタでページの印刷面を上にして印刷すると、文書は逆方向に印刷されます。1 ページ目はスタックの 1 番下になり、最終ページは 1 番上になります。プリンタのタイプを PSR として指定すると、LP 印刷サービスはプリンタに送る前にページの順序を逆転させます。つまり、最終ページが最初に印刷され、各ページは正順にスタックされます。ただし、LP 印刷サービスがページ順を確実に変更できるのは、『PostScript Language Reference Manual』(Adobe Systems Incorporated 制作、Addison-Wesley 社、1990 年刊) の付録 C の Adobe Document Structuring 規格に準拠する PostScript ファイルの場合だけです。
プリンタで複数の種類のプリンタをエミュレートできる場合は、lpadmin -T コマンドを使用して複数のタイプを割り当てることができます。複数のプリンタタイプを指定すると、LP 印刷サービスは各印刷要求に適したタイプを使用します。
該当する terminfo ディレクトリ内でプリンタタイプが見つからないことがあります。プリンタのタイプは、そのプリンタのメーカー名に対応しているとは限りません。たとえば、PostScript プリンタのタイプによっては、メーカーや製品名に固有のエントリの代わりに、PS または PSR エントリ (/usr/share/lib/terminfo/P ディレクトリに入っています) を使用できます。
例外的なタイプのプリンタを使用する場合は、さまざまなエントリを試してみなければ、プリンタのモデルに使用できる特定の terminfo エントリを判断できないことがあります。できれば、プリンタに使用できるエントリを terminfo データベース内で見つけてください。その方が、新しくエントリを作成するよりもはるかに簡単です。独自のエントリを作成しなければならない場合は、「サポートされていないプリンタの terminfo エントリを追加する」を参照してください。役立つヒントが掲載されています。
印刷フィルタはファイルの内容を、目的のプリンタが受け付けることができる形式に変換します。「ファイル内容形式」は、フィルタを通さずに直接印刷できるファイル内容の形式を LP 印刷サービスに通知します。フィルタなしに印刷するには、必要なフォントをプリンタ上でも利用できなければなりません (他のファイルタイプにはフィルタを設定して使用しなければなりません)。
lpadmin -I コマンドまたは Admintool を使用すると、プリンタのファイル内容形式を指定できます。Admintool を使用すると、メニューからファイル内容形式を選択できます。一部のファイル内容形式はメニューにありません。lpadmin コマンドを使用して、Admintool メニューにないファイル内容形式を指定してください。
多くのプリンタでは、次の 2 種類のファイルを直接印刷できます。
ユーザーがファイルの印刷要求を出すときは、そのファイルの内容形式を指定します (lp -T content-type)。指定しないと、ファイルは simple (ASCII テキスト) と見なされます。LP 印刷サービスはファイル内容形式を使用して、ファイル内容をプリンタで処理できる形式に変換するためのフィルタを決めます。
Admintool ではファイル内容形式のリストが表示されるので、ローカルプリンタをインストールまたは変更するときに、そこから形式を選択できます。選択結果は LP 印刷サービスが使用する名前に変換されます。表 40-2 は、Admintool で選択できるファイル内容形式を示しています。
表 40-2 Admintool によるファイル内容形式の選択
ファイル内容形式 |
LP 印刷サービス名 |
説明 |
---|---|---|
PostScript |
postscript |
PostScript ファイルはフィルタを通す必要がない。ASCII ファイルはフィルタを通す必要がある |
ASCII |
simple |
PostScript ファイルはフィルタを通す必要がある。ASCII ファイルはフィルタを通す必要がない |
PostScript と ASCII |
simple,postscript |
PostScript ファイルも ASCII ファイルもフィルタを通す必要がない |
None |
"" |
プリンタのタイプに一致するもの以外は、すべてのファイルがフィルタを通す必要がある |
Any |
any |
フィルタは使用されない。プリンタがファイル内容形式を直接処理できなければ、そのファイルは印刷されない |
プリンタの機能に最も適合するファイル内容形式を選択してください。PostScript は、Admintool のデフォルトの選択で、通常はほとんどこのまま使用できます (PostScript ファイルには、フィルタ処理が不要なことを示します)。
この節では、SunOS 5.x ソフトウェアで最も一般的に使用するプリンタのプリンタタイプとファイル内容形式について説明します。掲載されていませんが、ここで説明するプリンタの多くは、simple 内容形式のファイルも直接印刷できます。
PostScript プリンタがある場合は、プリンタタイプ PS または PSR と内容形式 postscript を使用してください。PSR はページの順序を逆転させ、各ページを逆順で印刷してバナーページを最後に印刷します。
表 40-3 は、PostScript 以外の他のプリンタと、各プリンタの構成に使用するプリンタタイプを示しています。これらのプリンタでは、ファイル内容形式は simple です。
Sun では表 40-3 のプリンタをサポートしていませんが、フィルタ処理を行うか、プリンタがファイル内容形式を直接印刷できれば、サポートしていないプリンタを使用できます。以下の製品に不明な点がある場合は、製造元に問い合わせてください。
プリンタ |
プリンタタイプ |
---|---|
Daisy |
daisy |
Datagraphix |
datagraphix |
DEC LA100 |
la100 |
DEC LN03 |
ln03 |
DECwriter |
decwriter |
Diablo |
diablo |
|
diablo-m8 |
Epson 2500 系列 |
epson2500 |
|
epson2500-80 |
|
epson2500-hi |
|
epson2500-hi80 |
Hewlett-Packard HPCL printer |
hplaser |
IBM Proprinter |
ibmproprinter |
terminfo データベースにないプリンタを設定したい場合は、「サポートされていないプリンタの terminfo エントリを追加する方法」を参照してください。
この章では、プリンタを設定してネットワーク上のシステムからアクセスできるようにする手順を説明します。ほとんどのプリンタ設定作業は、Admintool を使用して実行できます。この章で説明する手順は、次のとおりです。
プリンタの概要については、第 39 章「印刷管理の概要」を参照してください。
この節では、サイトにある SunOS 5.x と 4.x のシステムのプリンタ構成情報を変換して、その情報を SunSoft 印刷クライアントにコピーすることによって、既存のプリンタにアクセスできるようにする方法を説明します。
既存のプリンタの台数が少ない場合は、Solstice プリンタマネージャか Admintool を使用してプリンタへのアクセスを追加する方が、プリンタ構成情報を変換して印刷クライアントに配布するよりも簡単です。プリンタへアクセスを追加する方法については、表 41-2 を参照してください。
表 41-1 は、サイトにある SunOS 5.x と 4.x のシステムのプリンタ構成情報を変換して、その情報を SunSoft 印刷クライアントにコピーすることによって、既存のプリンタにアクセスできるようにする作業の概要を示しています。
表 41-1 作業マップ: SunSoft 印刷クライアントを更新して、既存のプリンタにアクセスする
作業 |
説明 |
手順の説明 |
|||||
---|---|---|---|---|---|---|---|
既存のプリンタ構成情報を変換する |
SunOS 5.x システムのプリンタ構成情報を変換する SunOS 5.x ソフトウェアを使用しているサイトでは、5.x システムの /etc/lp/printers ディレクトリ内のプリンタ構成情報を、SunSoft の /etc/printers.conf 構成ファイルに変換する。通常は 1 回の作業である。 | ||||||
|
SunOS 4.x システムのプリンタ構成情報を変換する SunOS 4.x ソフトウェアを使用しているサイトでは、4.x システムの /etc/printcap ファイル内のプリンタ構成情報を、SunSoft の /etc/printers.conf 構成ファイルに変換する。通常は 1 回の作業である。 | ||||||
既存のプリンタ構成情報は、Solaris 2.6 リリースをインストールまたはアップグレードするときに自動的に変換されます。この節では、SunOS 5.x または 4.x のシステムのプリンタ構成情報を、SunSoft 印刷クライアントソフトウェアで使用する /etc/printers.conf プリンタ構成ファイルに変換する方法を説明します。変換作業を自動化するために、2 つの新しい印刷管理コマンドを使用します。
conv_lp コマンドは、SunOS 5.x システムの /etc/lp/printers ディレクトリ内の情報を、そのシステムの /etc/printers.conf ファイルのエントリに変換します。手順については、「SunOS 5.x システムの印刷情報を変換する方法」を参照してください。
conv_lpd コマンドは、SunOS 4.x システムの /etc/printcap 構成ファイル内の情報を、/etc/printers.conf ファイルのエントリに変換します。手順については、「SunOS 4.x システムの印刷情報を変換する方法」を参照してください。
ネームサービスを使用していない場合、サイトにある既存のプリンタを含む、/etc/printers.conf のマスターファイルを作成します。次に、このマスターファイルをすべての SunSoft 印刷クライアントにコピーするか、(ネームサービスを使用している場合は)、NIS または NIS+ にロードします。新しい SunSoft 印刷クライアントは、最初から、サイトにある既存のプリンタにアクセスできるようにしておくことを推奨します。
NIS または NIS+ ネームサービスを使用してプリンタ情報を構成している場合、SunSoft 印刷クライアント上の /etc/printers.conf ファイルは使用しないでください。SunSoft 印刷クライアントは、最初に /etc/printers.conf ファイルを使用してプリンタを検出します。しかし、/etc/printers.conf ファイルが NIS マップか NIS+ マップ内のプリンタ情報と衝突を起こして、予期せぬ結果になる可能性があります。この問題を回避するために、SunSoft 印刷クライアントが NIS または NIS+ を使用してプリンタ情報を構成するときは、SunSoft 印刷クライアント上の /etc/printers.conf ファイルを削除してください。
SunOS 5.x ソフトウェアと SunSoft 印刷クライアントソフトウェアがインストールされているシステムに、スーパーユーザーとしてログインします。
そのシステムの /etc/lp/printers ディレクトリ内のプリンタ構成情報を /etc/printers.conf ファイルに変換します。
# /usr/lib/print/conv_lp
SunOS 4.x システムの /etc/printcap ファイルを、SunSoft 印刷クライアントソフトウェアをインストールしている SunOS 5.x システムにコピーします。
/etc/printcap ファイルをコピーした SunOS 5.x システムに、スーパーユーザーとしてログインします。
/etc/printcap ファイル内のプリンタ構成情報を /etc/printers.conf ファイルに変換します。
# /usr/lib/print/conv_lpd
「印刷の設定」は、印刷サーバーの設定 (プリンタの追加) と印刷クライアントの設定 (プリンタへのアクセスの追加) に必要な作業の概要を示しています。ローカルプリンタとは、印刷サーバーに物理的にケーブル接続されたプリンタのことです。ネットワークプリンタとは、ネットワークに物理的に接続されたプリンタのことです。プリンタへのアクセスを追加する (つまり、リモートアクセスを追加する) とは、印刷クライアント (サーバー以外のすべてのマシン) がプリンタにアクセスできるようにする手順のことです。
作業 |
説明 |
手順の説明 |
|||||
---|---|---|---|---|---|---|---|
ローカルプリンタの追加 |
Admintool を使用する プリンタをシステムに物理的に接続した後で、Admintool を使用してプリンタで印刷できるようにしなければならない。 | ||||||
|
|
|
LP コマンドを使用する プリンタをシステムに物理的に接続した後で、LP コマンドを使用してプリンタを印刷に使用できるようにする。 |
| |||
プリンタへのアクセスの追加 |
Admintool を使用する Admintool を使用して、プリンタへのアクセスを印刷クライアントに追加する。 | ||||||
|
|
|
LP コマンドを使用する lp コマンドを使用して、プリンタへのアクセスを印刷クライアントに追加する。 |
| |||
|
|
|
ネームサービスを使用する NIS または NIS+ の /etc/printers.conf ファイルを設定して、プリンタへのアクセスを印刷クライアントに追加する。 |
| |||
| |||||||
|
既存のプリンタへのアクセスの追加 |
|
マスターファイル /etc/printers.conf をクライアントにコピーする ネームサービスを使用していない場合は、変換したシステムの /etc/printers.conf ファイル内のプリンタ構成情報を、他の SunSoft 印刷クライアントにコピーする。 |
| |||
|
|
/etc/printers.conf ファイルを使用して、NIS にロードする NIS を使用している場合は、変換したシステムの /etc/printers.conf ファイルのプリンタ構成情報を NIS マスターファイルにコピーする。 | |||||
|
|
/etc/printers.conf ファイルを使用して、NIS+ にロードする NIS+ を使用している場合は、変換したシステムの /etc/printers.conf ファイルのプリンタ構成情報を NIS マスターファイルにコピーする。 | |||||
.printers ファイルの設定 |
省略可能 $HOME/.printers ファイルを使用して、ユーザーが独自のカスタムプリンタ別名を設定できるようにする。 | ||||||
| |||||||
ネットワークプリンタの追加 |
プリンタベンダー提供のツールを使用する プリンタをネットワークに物理的に接続した後、ベンダー提供のソフトウェアを使用してネットワークプリンタを構成する。 | ||||||
|
LP コマンドを使用する プリンタをネットワークに物理的に接続した後、SunSoft 提供のソフトウェアを使用してネットワークプリンタを構成する。 | ||||||
| |||||||
バナーページをオフにする |
省略可能 印刷されないように、バナーページをオフにすることができる。 | ||||||
障害警告の設定 |
省略可能 プリンタ用に Admintool よりも限定的な障害警告を設定できる。 | ||||||
障害回復機能の設定 |
省略可能 Admintool では、障害が起きた後でプリンタを回復させる方法を設定できない。 | ||||||
プリンタへのアクセス制限 |
省略可能 Admintool で、許可リストを設定できる。ただし、プリンタへアクセスできるユーザーを制限したい場合には、拒否リストを設定する。 | ||||||
次の前提条件を満たしているかどうかを確認します。Admintool を使用するには、以下の条件を満たさなければなりません。
プリンタを設定したいシステムにログインします。
次のコマンドを使用して Admintool を起動します。
$ admintool &
システムにローカルプリンタまたはネットワークプリンタを追加すると、そのプリンタにローカルシステムからアクセスできるようになります。プリンタをインストールするシステムが、「印刷サーバー」になります。
プリンタは、Admintool と LP 印刷サービスコマンドのどちらでも追加できます。次に、それぞれを使用する方法を説明します。
プリンタサーバーにするシステムを選択します。
pkginfo コマンドを使用して、印刷サーバーに印刷パッケージ SUNWpcr、SUNWpcu、SUNWpsr、SUNWpsu、SUNWscplp、および SUNWpsf がインストールされているか確認します。
# pkginfo package_instance
プリンタをプリンタサーバーに接続し、プリンタの電源を入れます。
ハードウェアのスイッチとケーブルの要件については、プリンタのインストールマニュアルを参照してください。
プリンタを接続したプリンタサーバー上で Admintool を起動します。
詳細は、「Admintool を起動する方法」の手順を参照してください。
「編集 (Edit)」メニューから「追加 (Add)」、「ローカルプリンタ (Local Printer)」の順に選択します。
フィールドに情報を入力する必要がある場合は、「ヘルプ」ボタンをクリックして、このウィンドウのフィールド定義を表示します。
「了解 (OK)」 をクリックします。
Admintool を終了します。
左上隅にあるボタンをクリックし、「終了 (quit)」を選択します。
新しいプリンタへのアクセスをクライアントに追加します。
これでプリンタは追加されました。プリンタへのアクセスをクライアントで作成します。詳細は、「印刷クライアントの設定」を参照してください。
オプションの作業を完了します。
プリンタを設定するときは、オプションの (省略可能な) 作業がいくつかあります。残りの作業の参照先については、「印刷の設定」を参照してください。
この例では、プリンタ luna が印刷サーバー krypton に追加されています。
ローカルプリンタの追加は、コマンド行インタフェースを使用しても行えます。
プリンタサーバーにするシステムを選択します。
pkginfo コマンドを使用して、印刷サーバーに印刷パッケージ SUNWpcr、SUNWpcu、SUNWpsr、SUNWpsu、SUNWscplp、および SUNWpsf がインストールされているか確認します。
# pkginfo package_instance
プリンタをプリンタサーバーに接続して、プリンタの電源を入れます。
ハードウェアのスイッチとケーブル接続の要件については、プリンタのインストールマニュアルを参照してください。
lp の所有権を設定して、ポートデバイスに対する読み取り権と書き込み権を設定します。
# chown lp /dev/term/device # chmod 600 /dev/term/device
lpadmin コマンドを使用して、プリンタ名、デバイス、プリンタタイプ、および内容形式を定義します。
lpfilter コマンドを使用して、フィルタを印刷サーバーに追加します。
プリンタがプリンタ要求を受け入れて、その要求を印刷できるようにします。
# accept printer-name # enable printer-name
lpstat コマンドを使用して、プリンタが正しく構成されているか確認します。
# lpstat -p printer-name
(省略可能) プリンタの説明を追加します。
# lpadmin -p printer_name -D "description"
新しいプリンタへのアクセスをクライアントで追加します。
これでプリンタは追加されました。プリンタへのアクセスをクライアントで作成します。詳細は、「印刷クライアントの設定」を参照してください。
オプションの作業を完了します。
プリンタを設定するときは、オプションの (省略可能な) 作業がいくつかあります。残りの作業の参照先については、「印刷の設定」を参照してください。
この例では、ローカルの PostScript プリンタを印刷サーバーで印刷できるようにする方法を示しています。この例のコマンドは、プリンタが接続されている印刷サーバーで実行しなければなりません。この例では次の情報を使用していますが、これらの情報は状況によって異なります。
プリンタ名: luna
ポートデバイス: /dev/term/b
プリンタタイプ: PS
ファイル内容形式: postscript
1# chown lp /dev/term/b # chmod 600 /dev/term/b 2# lpadmin -p luna -v /dev/term/b 3# lpadmin -p luna -T PS 4# lpadmin -p luna -I postscript # cd /etc/lp/fd 5# for filter in *.fd;do > name=`basename $filter .fd` > lpfilter -f $name -F $filter > done 6# accept luna destination "luna" now accepting requests # enable luna printer "luna" now enabled 7# lpadmin -p luna -D "Room 1954 ps" 8# lpstat -p luna printer luna is idle. enabled since Mon Jun 4 14:37:59 PST 1996. available.
1. lp に所有権とポートデバイスへの単独アクセスを設定する。
2. プリンタ名とプリンタが使用するポートデバイスを定義する。
3. プリンタタイプを設定する。
4. プリンタがで直接印刷できるファイル内容形式を指定する。
5. 印刷フィルタを印刷サーバーに追加する。
6. プリンタの印刷要求を受け付けて、プリンタを印刷可能にする。
7. プリンタの記述を追加する。
8. プリンタが準備できているかどうかを確認する。
印刷クライアントは、プリンタ用のサーバーではないが、プリンタにアクセスできるシステムのことです。印刷クライアントは、印刷サーバーのサービスを使用して、印刷ジョブのスプール、スケジュール、およびフィルタリングを実行します。1 つのシステムがあるプリンタの印刷サーバーになり、同時に、他のプリンタの印刷クライアントになることも可能です。
リモートプリンタへのアクセスは、ドメイン単位またはマシン単位で構成できます。これら 2 つの組み合わせも利用できます。マシン単位でリモートプリンタへのアクセスを追加する方法については、「Admintool を使用して印刷クライアントにプリンタアクセスを追加する方法」または 「LP コマンドを使用して、印刷クライアントにアクセスを追加する方法」を参照してください。ドメイン単位でアクセスを追加する方法については、「ネームサービスを使用して、リモートプリンタへのアクセスを追加する」の手順に従ってください。また、printers.conf(4)、printers(4)、および lpset(1M) のマニュアルページも参照してください。
リモートプリンタへのアクセスを追加したいシステム上で Admintool を起動します。
詳細は、「Admintool を起動する方法」の手順を参照してください。
「編集 (Edit)」メニューから「追加 (Add)」、「プリンタへのアクセス (Access to Printer)」の順に選択します。
「プリンタへのアクセス (Add Access to Printer)」ウィンドウが表示されます。
ウィンドウに情報を入力します。
フィールドに情報を入力する必要がある場合は、「ヘルプ」ボタンをクリックして、このウィンドウのフィールドの定義を表示します。
「了解 (OK)」 をクリックします。
Admintool を終了します。
左上隅にあるボタンをクリックし、「終了 (quit)」を選択します。
次の例では、印刷クライアント rogue が、印刷サーバー enterprise 上のプリンタ rocket にアクセスできるようにします。
必要な情報を収集します。
必要な情報は、プリンタ名とそのプリンタのサーバー名です。
lpadmin コマンドを使用して、プリンタを定義します。
# lpadmin -p printer_name -s server_name
(省略可能) プリンタ記述を追加します。
# lpadmin -p printer_name -D "description"
lpstat コマンドを使用して、プリンタが正しく構成されていることを確認します。
# lpstat -p printer-name
リモートプリンタで印刷する場合、リモートプリンタにアクセスを追加しなければなりません。次の例は、印刷サーバー saturn のプリンタ luna にアクセスを構成する方法を示しています。システム saturn は、プリンタ luna の印刷クライアントになります。
1# lpadmin -p luna -s saturn 2# lpadmin -p luna -D "Room 1954 ps" 3# lpadmin -d luna 4# lpstat -p luna printer luna is idle. enabled since Jun 24 18:30 1996. available.
1. プリンタと印刷サーバーを指定する。
2. プリンタの説明を追加する。
3. プリンタをシステムのデフォルトのプリンタ宛先として設定する。
4. プリンタが用意できていることを確認する。
NIS または NIS+ マップを使用している場合、プリンタへのアクセスはドメイン単位で設定します。詳細は、nis+(1) のマニュアルページを参照してください。
NIS マスターサーバー上で lpset コマンドを実行して、printers.conf ファイルを作成します。次に、マップを作成して、そのマップをプッシュします。これで、ドメイン内のすべてのメンバーに、マップ内で定義されたプリンタへのアクセスを与えます。lpset(1M) のマニュアルページを参照してください。
NIS マスターサーバー上でスーパーユーザーになります。
プリンタごとに lpset コマンドを使用して、printers.conf ファイルを作成します。
# lpset -a bsdaddr=server1,printer1,extensions printer1
-a bsdaddr=server1,printer1,extensions |
印刷サーバーとプリンタ宛先を追加して、Solaris プロトコル拡張を有効にする |
printer1 |
プリンタ名を指定する |
NIS マップを作成してプッシュします。
# make -f /var/yp/makefile -f /usr/lib/print/Makefile.yp printers.conf
-f /var/yp/makefile |
NIS Makefile を指定する |
-f /usr/lib/print/Makefile.yp |
NIS 印刷 Makefile を指定する。これは、両方の Makefile の暗黙のルールや定義済みマクロが連結されることを意味する |
printers.conf |
作成または更新するファイルを指定する |
この例は、印刷サーバー saturn に接続されているプリンタ luna 用の printers.conf エントリを作成しています。make コマンドは、printers.conf マップをプッシュします。
# lpset -a bsdaddr=saturn,luna,Solaris -a description="Room 1954 ps" luna# make -f /var/yp/makefile -f /usr/lib/print/Makefile.yp printers.conf
NIS+ マスターサーバー上で lpset コマンドを実行して (lpset(1M) のマニュアルページを参照)、XFN 経由でプリンタ構成情報を NIS+ に追加します (詳細は、fns(5) のマニュアルページを参照してください)。
NIS+ マスターサーバー上でスーパーユーザーになります。
(省略可能) FNS が初期化されていない場合、NIS+ ルートドメイン用のルート組織コンテキストと下位コンテキストを作成します。
# fncreate -t org org//
NIS+ マップを作成します。
# lpset -n fns -a bsdaddr=server1,printer1,extensions printer1
-n fns |
FNS コンテキストを作成または更新する |
-a bsdaddr=server1,printer1,extensions |
印刷サーバーとプリンタ宛先を追加して、Solaris プロトコル拡張を有効にする |
printer1 |
プリンタ名を指定する |
この例は、印刷サーバー saturn に接続されているプリンタ luna 用の printers.conf エントリを作成しています。
# lpset -n fns -a bsaddr=saturn,luna,Solaris -a description="Room 1954 ps" luna
サイトにある既存のプリンタを含む /etc/printers.conf のマスターファイルを作成すると、次の 2 つの方法で、すべての SunSoft 印刷クライアントが既存のプリンタにアクセスできるようになります。
ネームサービスを使用していない場合は、/etc/printers.conf のマスターファイルをすべての SunSoft 印刷クライアントにコピーします。
ネームサービスを使用している場合は、/etc/printers.conf のマスターファイルを使用して、NIS または NIS+ マスターファイルをロードします。このファイルの情報は、すべての SunSoft 印刷クライアントで利用できるようになります。
NIS マスターサーバーにコピーする /etc/printers.conf ファイルを持つシステムにスーパーユーザーとしてログインします。
そのシステムの /etc/printers.conf ファイルを NIS マスターサーバーの /etc ディレクトリにコピーします。
/usr/lib/print/Makefile.yp を NIS マスターサーバーの /var/yp ディレクトリにコピーします。
NIS マスターサーバーにスーパーユーザーとしてログインします。
このシステム上で、ファイルを処理する方法を指定します。
# make -f /var/yp/makefile -f /var/yp/Makefile.yp printers.conf
-f /var/yp/makefile |
NIS Makefile を指定する |
-f /usr/lib/print/Makefile.yp |
NIS 印刷 Makefile を指定する。これは、両方の Makefile の暗黙のルールや定義済みマクロが連結されることを意味する |
printers.conf |
作成または更新するファイルを指定する |
NIS+ の admin グループのメンバーであることを確認します。次の作業を行うには、適切な特権が必要です。
NIS+ マスターファイルにコピーする /etc/printers.conf ファイルを持つシステムにスーパーユーザーとしてログインします。
システムの /etc/printers.conf ファイルを NIS+ マスターファイルにコピーします。
# fncreate_printer -f /etc/printers.conf thisorgunit/service/printer
このコマンドの入力方法については、『Solaris 2.6 Software Developer AnswerBook』の『Federated Naming Service Programming Guide』を参照してください。
SunSoft 印刷クライアントに既存のプリンタへのアクセスを与えた後、ユーザーは自分のホームディレクトリにある .printers ファイルにプリンタ別名を設定することができます。設定手順については、次の節を参照してください。
プリンタ情報をカスタマイズする必要がなければ、ユーザーのホームディレクトリに .printers ファイルを設定する必要はありません。しかし、.printers ファイルは、ユーザーが独自のカスタムプリンタ別名を設定できる場所です。別名 _default を使用すれば、デフォルトのプリンタを設定できます。また、特殊別名 _all を設定すれば、印刷要求を取り消したりプリンタの情報をチェックしたりするときの対象となるプリンタのリストを定義できます。
LP コマンドは、ネームサービスをチェックする前に、ユーザーのホームディレクトリにプリンタ構成情報があるかどうかをチェックすることを覚えておいてください。つまり、ユーザーのプリンタ構成ファイルを設定することによって、ネームサービスの共有情報ではなく、カスタムプリンタ情報を使用できます。
.printers ファイルの詳細は、printers(4) のマニュアルページを参照してください。
ユーザーのシステムにログインします。
任意のエディタで、.printers ファイルをユーザーのホームディレクトリに作成します。
(省略可能) _default 別名を設定して、特定のプリンタをデフォルトプリンタに指定します。次の例に示すようなエントリを使用します。
_default printer_name
(省略可能) _all 別名を設定して、印刷要求を取り消したりプリンタの状態をチェックしたりするときの対象となるプリンタを定義します。次の例に示すようなエントリを使用します。
_all printer1 printer2 printer3
そのファイルを .printers として保存します。
「ネットワークプリンタ」とは、印刷サーバーに接続せずに印刷クライアントに印刷サービスを提供するハードウェアデバイスのことです。ネットワークプリンタは専用のシステム名と IP アドレスを持ち、ネットワークに直接接続されます。ネットワークプリンタが印刷サーバーに接続されていない場合でも、専用の印刷サーバーを設定しておく必要があります。印刷サーバーは、ネットワークプリンタの待ち行列化機能と印刷管理機能を提供します。
1 つ以上の独自のプロトコルを使用するので、ネットワークプリンタは、ベンダー提供の印刷プログラムが必要です。ベンダーから提供される印刷プログラムの設定手順は、それぞれ異なることがあります。プリンタにベンダー提供サポートが付いていない場合は、SunSoft ネットワークプリンタサポートを使用できます。可能な限りプリンタベンダー提供のソフトウェアを利用することを強く推奨します。
ベンダーは、SVR4 プリンタインタフェーススクリプトを提供して標準プリンタインタフェーススクリプトを置き換えている場合があります。その場合、SVR4 インタフェーススクリプトはベンダー提供の印刷プログラムを呼び出して、ジョブをプリンタに送ります。このスクリプトが提供されない場合は、標準インタフェーススクリプトを変更してベンダー提供の印刷プログラムを呼び出す必要があります。この作業は、標準インタフェーススクリプトのプリンタごとのコピーをベンダー提供の印刷プログラムを呼び出すように編集することで実行できます。
ネットワークプリンタ構成で使用する用語を説明します。
印刷サーバー: プリンタ用にジョブをスプールおよびスケジュールするマシン。このマシンにプリンタが構成されます。
プリンタホストデバイス: プリンタホストデバイスは、ネットワークに対応していないプリンタにネットワークプリンタサポートを提供する、ベンダー提供のソフトウェアおよびハードウェアです。プリンタホストデバイスとそれに接続された 1 つまたは複数のプリンタの組み合わせを「ネットワークプリンタ」と呼びます。
プリンタノード: 物理的なプリンタまたはプリンタホストデバイス。ネットワークサポートが物理的なプリンタにあるときは、物理的なプリンタです。ネットワークインタフェースを提供するために外部ボックスを使用しているときは、プリンタホストデバイスです。プリンタノード名は、IP アドレスが与えられているマシン名です。この名前はシステム管理者が選択するもので、デフォルトやベンダーの要件はありません。ノードと同様に、プリンタノード名も一意でなければなりません。
プリンタ名: プリンタコマンドを使用するときにコマンド行に入力する名前。この名前は、システム管理者がプリンタ構成時に選択します。1 つの物理的なプリンタは、複数のプリンタ名または待ち行列名を持つことができます。それぞれ、そのプリンタへのアクセスを提供します。
ネットワークプリンタアクセス名: プリンタサブシステムがプリンタにアクセスするときに使用するプリンタノードポートの内部名。プリンタノード名か、プリンタベンダーポート指定付きのプリンタノード名です。プリンタベンダーポート指定は、プリンタベンダーのマニュアルで明示的に定義されています。これはプリンタに固有です。プリンタがプリンタホストデバイスでありプリンタでもある場合、ポート指定は、プリンタホストデバイスのマニュアルに説明されています。書式は次のいずれかです。
printer_node_name
または
printer_node_name:port_designation
プロトコル: プリンタとケーブル経由で通信するために使用するプロトコル。プリンタのマニュアルには、選択するプロトコルについての説明があります。SunSoft ネットワークプリンタサポートは、BSD プリンタプロトコルと raw TCP の両方を提供します。実装によって、両方を使用するように設定できます。
タイムアウト (再試行間隔): タイムアウトは、プリンタへの接続の試行間に待機する秒数を表すシード (seed) 数です。このシード数は、接続の試行間に待機する最小の秒数であり、接続が失敗するごとに増えます。プリンタへの接続が繰り返して失敗すると、ユーザーの介入を要求するメッセージがユーザーに戻されます。接続が成功するか、ジョブの所有者がジョブを取り消すまで、再接続の試行は続けられます。
多くの場合、ネットワークプリンタには、プリンタベンダー提供のソフトウェアサポートが提供されます。プリンタにプリンタベンダー提供のソフトウェアがある場合は、プリンタベンダー提供のソフトウェアを利用することを強く推奨します。プリンタベンダー提供のソフトウェアは、そのプリンタの特性をサポートするように設計されていて、プリンタの能力をフルに活用します。プリンタのマニュアルをよく読んで、プリンタを LP 印刷システムにインストールおよび構成してください。
ネットワークプリンタベンダーがソフトウェアサポートを提供していない場合、Sun が提供するソフトウェアを利用できます。このソフトウェアは、ネットワークプリンタの汎用サポートを提供するもののため、必ずしもプリンタで利用できるすべての機能を使用できません。
ネットワークプリンタを追加するための一般的な説明については、第 41 章「プリンタの設定手順」を参照してください。次は、Sun 提供のソフトウェアを使用したプリンタの管理を説明します。
ネットワークプリンタ用のソフトウェアサポートは、インタフェーススクリプト経由で呼び出されます。ネットワークインタフェーススクリプト netstandard でネットワークプリンタを構成すると、ネットワークプリンタサポートモジュールが呼び出されます。次に、ネットワークサポートでプリンタを構成するコマンドを示します。
lpadmin -p printer_name -i /usr/lib/lp/model/netstandard
印刷サブシステムは、BSD 印刷プロトコルと raw TCP を使用してプリンタと通信します。プリンタのマニュアルには、使用するプロトコルについての情報が提供されています。一般に、プリンタに使用するのは TCP プロトコルです。
プロトコルを選択するコマンドは次のいずれかです。
lpadmin -p printer_name -o protocol=bsd
または
lpadmin -p printer_name -o protocol=tcp
選択したプロトコルが BSD 印刷プロトコルの場合、さらにコントロールファイルをプリンタに送信する順番を選択できます。一部のプリンタは、コントロールファイルの後にデータファイルという順番を仮定しますが、その逆を仮定するプリンタもあります。この情報については、プリンタベンダーのマニュアルを参照してください。デフォルトでは、コントロールファイルを先に送信します。
順番を選択するコマンドは次のいずれかです。
lpadmin -p printer_name -o bsdctrl=first
または
lpadmin -p printer_name -o bsdctrl=last
システム管理者はプリンタノード名を選択します。ネットワーク上のノードと同様に、この名前は一意でなければなりません。プリンタノード名は、プリンタの IP アドレスと関連付けられます。
印刷サブシステムはプリンタのアクセス情報を必要とします。これは、プリンタへのネットワーク接続を行うときにサブシステムが使用する名前です。この名前は、システム管理者が lpadmin コマンドで印刷サブシステムに提供します。これは、プリンタ構成データベースの一部になります。プリンタアクセス名はプリンタノード名であり、ポート名で修飾される場合もあります。ポート指定はプリンタベンダー間で異なります。ポート指定については、プリンタのマニュアルを参照してください。次に、プリンタアクセス名の書式を示します。
printer_node-name[:port_designation]
TCP の共通ポート指定は 9100 です。プリンタノード名が pn1 で、プリンタベンダーがそのポートを 9100 と定義していた場合、プリンタアクセス名は pn1:9100 になります。この場合にプリンタを構成するには、次のコマンドを使用します。
lpadmin -p printer_name -o dest=pn1:9100
BSD プロトコルを使用するとき、ポート指定は番号でなく、プリンタベンダーが定義した名前です (例: xxx_parallel_1)。プリンタノード名が cardboard の場合、プリンタアクセス名は cardboard:xxx_parallel_1 になります。この場合プリンタを構成するには、次のコマンドを使用します。
lpadmin -p printer_name -o dest=cardboard:xxx_parallel_1
ポート指定がなく、プリンタノード名が newspaper の場合、プリンタアクセス名はプリンタノード名 newspaper になります。この場合にプリンタを構成するには、次のコマンドを使用します。
lpadmin -p printer_name -o dest=newspaper
タイムアウトオプションは、プリンタに接続しようとする試行間で待機する時間 (秒数) を個別に選択するためのものです。ウォームアップ時間が長いプリンタの場合は、タイムアウト値を大きくします。デフォルトは 10 秒です。
タイムアウト値は、印刷プロセスが成功するか失敗するかには影響を与えません。これは、ソフトウェアが初期タイムアウトカウントとして使用するシード値です。失敗が続くと、このカウントは増えます。プリンタへの接続の試行が連続して失敗すると、メッセージがスプーラに送信されます。これによって、ユーザーの介入が必要であることをユーザーに警告します。プリンタの電源が入っていなかったり、用紙がなくなっていたりするときにも、このメッセージが生成される可能性があります。たとえば、プリンタがウォームアップしているときに、このようなメッセージが頻繁に生成されるようであれば、タイムアウト値を増やすことで間違ったメッセージを減らすことができます。
システム管理者は最適なタイムアウト値を探してください。次に、タイムアウト値を設定するコマンドを示します。
lpadmin -p printer_name -o timeout=n
各ネットワークプリンタは、そのプリンタへのアクセスを提供するサーバーを 1 つだけ持っています。これによって、サーバーはそのプリンタへのアクセスを管理して、ジョブの一貫性を保つことができます。
ネットワークプリンタのデフォルトデバイスは /dev/null です。プリンタに待ち行列が 1 つしかない場合はこれで十分です。複数の待ち行列が必要であれば、そのデバイスをファイルに設定します。これによって、印刷システムはプリンタへのアクセスを待ち行列間で制限できます。次のコマンドは、デバイスファイルを作成して、ネットワークプリンタデバイスとして構成しています。
touch /path/filename chmod 600 /path/filename lpadmin -p printer_name -v /path/filename
次の例では、devtreedown というデバイスファイルを作成しています。
# touch /var/tmp/devtreedown # chmod 600 /var/tmp/devtreedown # lpadmin -p treedown -v /var/tmp/devtreedown
プリンタをネットワークに接続し、電源を入れます。
ハードウェアのスイッチとケーブルの要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。これは、ネットワークにノードを追加することと同じです。
プリンタのマニュアルに従って、SVR4 LP 印刷スプーラのある SunOS 5.x システムにネットワークプリンタを追加します。
プリンタのマニュアルを使用して、ネットワークプリンタを構成してください。手順は、ベンダーやプリンタに固有です。
新しいプリンタへのアクセスをクライアントに追加します。
これでプリンタは追加されました。プリンタへのアクセスをクライアントに作成します。「印刷クライアントの設定」を参照してください。
オプションの作業を完了します。
ネットワークプリンタを設定するときは、オプションの作業がいくつかあります。残りの作業の参照先については、「印刷の設定」を参照してください。
ここでは、SunSoft ネットワークプリンタサポートソフトウェアを使用して、ネットワークプリンタを設定するのに必要な手順を説明しています。このソフトウェアを使用するのは、プリンタにベンダー提供のソフトウェアが付いていない場合だけです。
プリンタをネットワークに接続して、プリンタの電源を入れます。
ハードウェアのスイッチとケーブル接続の要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。これは、ネットワークにノードを追加することと同じです。
ネットワークプリンタを構成するのに必要な情報を収集します。
プリンタ名
プリンタサーバー
ネットワークプリンタアクセス名
プロトコル
タイムアウト
詳細は、「ネットワークプリンタの追加」で説明している用語を参照してください。
lpadmin コマンドを使用して、プリンタ名、デバイス、プリンタタイプ、および内容形式を定義します。
プリンタ名とプリンタが使用するポートデバイスを定義します。
# lpadmin -p printer-name -v /dev/null
使用するデバイスは /dev/null です。
プリンタが使用するインタフェースを指定します。
# lpadmin -p printer-name -i /usr/lib/lp/model/netstandard
SunSoft ネットワークプリンタサポートソフトウェアで提供されるインタフェーススクリプトは /usr/lib/lp/model/netstandard です。
プリンタ宛先、プロトコル、およびタイムアウト値を設定します。
# lpadmin -p printer-name -o dest=access-name:port -o protocol=protocol -o timeout=value
-p printer-name |
ネットワークプリンタ名を指定する |
-o dest=access-name:port |
ネットワークプリンタアクセス名と、プリンタのマニュアルに定義されていれば指定されたプリンタベンダーポートに、プリンタ宛先を設定する。詳細は、「ネットワークプリンタの追加」を参照 |
-o protocol:protocol |
プリンタとケーブル経由で通信するために使用するプロトコルを設定する。BSD と raw TCP の両方をサポートしている |
-o timeout:value |
プリンタへの接続の試行間で待機する秒数を表す再試行タイムアウト値を設定する。詳細は、「ネットワークプリンタの追加」を参照 |
プリンタのファイル内容形式とプリンタタイプを指定します。
# lpadmin -p printer-name -I content-type -T printer-type
lpfilter コマンドを使用して、印刷サーバーにフィルタを追加します。
# cd /etc/lp/fd # for filter in *.fd;do > name=`basename $filter .fd` > lpfilter -f $name -F $filter > done
プリンタがプリンタ要求を受け入れて、その要求を印刷できるようにします。
# accept printer-name # enable printer-name
lpstat コマンドを使用して、プリンタが正しく構成されていることを確認します。
# lpstat -p printer-name
新しいプリンタへのアクセスをクライアントに追加します。
これでプリンタは追加されました。プリンタへのアクセスをクライアントに作成します。「印刷クライアントの設定」を参照してください。
オプションの作業を完了します。
プリンタを設定するときは、オプションの作業がいくつかあります。残りの作業の参照先については、「印刷の設定」を参照してください。
この例のコマンドは、印刷サーバーで実行しなければなりません。この例では次の情報を使用していますが、これらの情報は状況によって異なります。
プリンタ名: luna1
サーバー: saturn
ネットワークプリンタアクセス名: nimquat:9100
プロトコル: tcp
タイムアウト: 5
インタフェース: /usr/lib/lp/model/netstandard
プリンタタイプ: PS
内容形式: postscript
デバイス: /dev/null
1# lpadmin -p luna1 -v /dev/null 2# lpadmin -p luna1 -i /usr/lib/lp/model/netstandard 3# lpadmin -p luna1 -o dest=nimquat:9100 -o protocol=tcp -o timeout=5 4# lpadmin -p luna1 -I postscript -T PS # cd /etc/lp/fd 5# for filter in *.fd;do > name=`basename $filter .fd` > lpfilter -f $name -F $filter > done 6# accept luna1 destination "luna1" now accepting requests # enable luna1 printer "luna1" now enabled 7# lpadmin -p luna1 -D "Room 1954 ps" 8# lpstat -p luna1 printer luna1 is idle. enabled since Mon Jun 24 17:55 1996. available.
1. プリンタ名を定義する。デバイスを /dev/null に設定する。
2. ネットワークプリンタ用のインタフェーススクリプトを定義する。
3. 宛先、プロトコル、およびタイムアウトを設定する。
4. プリンタで直接印刷できるファイル内容形式とプリンタタイプを指定する。
5. 印刷フィルタを印刷サーバーに追加する。
6. 印刷要求を受け付けてプリンタを印刷可能にする。
7. プリンタの記述を追加する。
8. プリンタの準備ができているかどうかを確認する。
この章では、プリンタを管理する手順について説明します。この章で説明する手順は次のとおりです。
印刷と LP 印刷サービスの概要については、第 39 章「印刷管理の概要」を参照してください。
この節では、プリンタと印刷スケジューラを管理するために日常的に行う作業について説明します。
プリンタの交換が必要な場合や、プリンタを別の場所に移動したい場合は、印刷サーバーから物理的に削除する前に、LP 印刷サービスからプリンタ情報を削除しなければなりません。また、プリンタ上の現在の印刷要求がすべて印刷されるか、別のプリンタに移動して印刷されるかを確認する必要があります。
プリンタ情報を印刷サーバーから削除するだけでなく、印刷クライアントまたはネットワークネームサービスからも削除する必要があります。印刷サーバーからローカルプリンタを削除する場合は、印刷クライアントまたはネットワークネームサービスからリモートプリンタエントリを削除する必要があります。プリンタを別の印刷サーバーに移動する場合は、印刷クライアントまたはネットワークネームサービスから古いリモート印刷エントリを削除し、リモートプリンタへのアクセスを新しい位置に追加する必要があります。
ローカルとリモートのプリンタの削除方法については、「プリンタとリモートプリンタへのアクセスを削除する方法」を参照してください。Admintool を使用して、ローカルまたはリモートプリンタを削除できます。ただし、Admintool では、待ち行列に入っている印刷要求を別のプリンタに移動できません。
印刷クライアントからプリンタに関する情報を削除します。
print-client# lpadmin -x printer-name
-x |
指定したプリンタを削除する |
printer-name |
削除したいプリンタ名 |
印刷クライアントが同じ印刷サーバー上の別のプリンタを使用しない場合は、その印刷サーバーに関する情報を印刷クライアントから削除します。
print-client# lpsystem -r print-server
-r |
指定した印刷サーバーを削除する |
print-server |
削除したい印刷サーバー名 |
印刷サーバーにスーパーユーザーまたは lp としてログインします。
print-server# reject printer-name
reject printer-name |
指定したプリンタの印刷要求を拒否する |
この手順を実行すると、プリンタの削除処理中は、そのプリンタの待ち行列に新しい要求が入らなくなります。詳細は、「プリンタへの印刷要求を受け付けるまたは拒否する方法」 を参照してください。
print-server# disable printer-name
この手順を実行すると、印刷要求の印刷は停止されます。印刷を停止する方法については、「プリンタを使用可能または使用不可にする方法」を参照してください。
待ち行列に残っている印刷要求がある場合は、別のプリンタに移動します。
印刷要求を別のプリンタに移動する方法については、「印刷要求を別のプリンタに移動する方法」を参照してください。
print-server# lpadmin -x printer-name
削除したばかりのプリンタを使用していた印刷クライアントが、まだ印刷サーバー上で別のプリンタを使用中でなければ、その印刷クライアントに関する情報を削除します。
print-server# lpsystem -r print-client1 [,print-client2...]
-r |
指定した印刷サーバーを削除する |
print-client |
印刷サーバーから削除したい印刷クライアント名。このコマンドで複数の印刷クライアントを指定できる。印刷クライアント名を区切るには空白またはカンマを使用する。空白を使用する場合は、印刷クライアントのリストを引用符で囲む |
指定した印刷クライアントが、印刷サーバーの /etc/lp/Systems ファイルから削除されます。
プリンタ情報が削除されていることを確認します。
次の例では、コマンドは印刷クライアント terra と印刷サーバー jupiter からプリンタ luna を削除し、印刷クライアント terra を印刷サーバーから削除します。
terra# lpadmin -x luna Removed "luna". terra# lpstat -p luna -l jupiter# lpadmin -x luna jupiter# lpsystem -r terra Removed "terra". jupiter# lpstat -p luna -l
多くの日常的なプリンタ管理作業には、LP 印刷サービスや特定のプリンタの状態に関する情報が必要です。たとえば、どのプリンタが使用できるかを判別し、そのプリンタの特性を検査しなければならない場合があります。lpstat コマンドを使用すると、LP 印刷サービスや特定のプリンタに関する状態情報を調べることができます。
ネットワーク上の任意のシステムにログインします。
lpstat コマンドを使用してプリンタの状態をチェックします。
ここには、最も一般的に使用するオプションのみを掲載してあります。他のオプションについては、lpstat(1) のマニュアルページを参照してください。
$ lpstat [-d] [-p printer-name [-D] [-l]] [-t]
次の例では、コマンドはシステムのデフォルトプリンタ名を表示します。
$ lpstat -d system default destination: luna
次の例では、コマンドはプリンタ luna の状態を表示します。
$ lpstat -p luna printer luna is idle. enabled since Feb 18 16:06 1997. available.
次の例では、コマンドはプリンタ asteroid と luna の記述を表示します。
$ lpstat -p "asteroid luna" -D printer asteroid faulted. enabled since Feb 18 16:07 1997. available. unable to print: paper misfeed jam Description: Printer by break room. printer luna is idle. enabled since Feb 18 16:07 1997. available. Description: Printer by server room.
次の例では、コマンドはプリンタ luna の特性を表示します。
$ lpstat -p luna -l printer luna is idle. enabled since Thu May 2 09:20:17 MDT 1996. available. Content types: any Printer types: unknown Description: Printer by server room. Users allowed: (all) Forms allowed: (none) Banner not required Character sets: (none) Default pitch: Default page size:
印刷スケジューラ lpsched は、印刷サーバー上の印刷要求を処理します。ただし、印刷スケジューラがシステム上で動作を停止したために、印刷要求の受け付けや印刷が停止されることがあります。
印刷スケジューラを再起動するには、/usr/lib/lp/lpsched コマンドを使用できます。印刷スケジューラが動作を停止するときに印刷要求が印刷中だった場合は、印刷スケジューラを再起動すると、その印刷要求全体が印刷されます。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
印刷スケジューラが動作しているかどうかをチェックします。
# lpstat -r
印刷スケジューラが動作していない場合は、「scheduler is not running」というメッセージが表示されます。
印刷スケジューラが動作している場合は停止します。
# /usr/lib/lp/lpshut
印刷サーバーにスーパーユーザーまたは lp としてログインします。
印刷スケジューラが動作しているかどうかをチェックします。
# lpstat -r
印刷スケジューラが動作していない場合は、「scheduler is not running」というメッセージが表示されます。
印刷スケジューラが動作していない場合は起動します。
# /usr/lib/lp/lpsched
この節では、プリンタ定義の設定またはリセットの手順を説明します。次のプリンタ定義の一部は、Admintool または Solstice プリンタマネージャを使用して設定できます。次の手順では、迅速にプリンタ定義を設定またはリセットするために、lp コマンドを使用しています。
lpadmin コマンドを使用してプリンタ記述を追加します。
# lpadmin -p printer-name -D "comment"
p printer-name |
記述を追加するプリンタ名 |
-D "comment" |
設置場所や管理担当者など、プリンタの特性を指定する。シェルが解釈する文字 (*、?、¥、!、^ など) は、一重引用符で囲む |
プリンタ記述は印刷サーバーの /etc/lp/printers/printer-name/comment ファイルに追加されます。
Description 情報をチェックします。
$ lpstat -p printer-name -l
次の例では、コマンドはプリンタ luna のプリンタ記述を追加します。
# lpadmin -p luna -D "Nathans office"
印刷コマンドを使用するときにプリンタ名を入力しなくてもすむように、システムのデフォルトプリンタを指定できます。あるプリンタをデフォルトとして指定する前に、そのプリンタをシステム上の印刷サービスに認識させなければなりません。次のいずれかを設定すれば、システムのデフォルトプリンタを設定できます。
LPDEST 環境変数
PRINTER 環境変数
システムのデフォルトプリンタ (lpadmin -d コマンドまたは Admintool を使用)
アプリケーションがプリンタを指定する場合は、システムのデフォルトプリンタを設定したかどうかに関係なく、その出力先が印刷サービスに使用されます。アプリケーションにプリンタの出力先がない場合や、印刷コマンドの使用時にプリンタ名が指定されていない場合は、印刷コマンドはデフォルトプリンタを特定の順序で検索します。表 42-1 は、システムのデフォルトプリンタの検索順序を示しています。
表 42-1 デフォルトプリンタの検索順序
検索順序 |
/usr/bin/lp コマンドを使用 |
lpr、lpq、または lprm コマンドを使用 |
---|---|---|
1 |
LPDEST 変数 |
PRINTER 変数 |
2 |
PRINTER 変数 |
LPDEST 変数 |
3 |
システムのデフォルトプリンタ |
システムのデフォルトプリンタ |
lpadmin コマンドを使用してシステムのデフォルトプリンタを設定します。
# lpadmin -d [printer-name]
-d printer-name |
システムのデフォルトプリンタとして割り当てるプリンタ名。printer-name を指定しなければ、システムはデフォルトプリンタなしで設定される |
lpstat コマンドを使用して、システムのデフォルトプリンタをチェックします。
$ lpstat -d
次の例では、プリンタ luna をシステムのデフォルトプリンタとして設定します。これは、LPDEST または PRINTER 環境変数が設定されていない場合、luna がシステムのデフォルトプリンタとして使用されることを意味します。
# lpadmin -d luna # lpstat -d system default destination: luna
バナーページには、印刷要求を出したユーザー、印刷要求 ID、要求の印刷時期が出力されます。また、バナーページには、ユーザーがプリントアウトを識別しやすいように変更可能なタイトルを付けることもできます。
バナーページは、印刷ジョブの所有者を簡単に識別できるようにします。これは、多数のユーザーが同じプリンタにジョブを依頼するときに特に便利です。ただし、バナーページを印刷すると用紙の消費量が増えますが、1 台のプリンタを使用するユーザーが少ない場合は必要ないことがあります。また場合によっては、バナーページを印刷しない方がよいこともあります。たとえば、プリンタに支払い小切手などの特殊な用紙やフォームが装着されている場合は、バナーページを印刷すると問題が起きることがあります。
デフォルトでは、印刷サービスはバナーページを強制的に印刷します。ただしユーザーは、印刷要求を出すときにバナーページの印刷をオフにするかどうかを選択できます。この選択肢は lpadmin コマンドまたは Admintool を通じて設定できます。ユーザーが選択できるようにする場合、ユーザーがバナーページの印刷をオフに切り替えるには、-o nobanner オプションを使用する必要があります。
また、プリンタのバナーページをオフにして印刷できないようにすることもできます。これは、バナーページが不要な状況では重要です。バナーページの印刷は、コマンド行インタフェースからでなければオフにできません。詳細は、「バナーページをオフにする方法」を参照してください。
lpadmin コマンドを使用してバナーページをオプションにします。
# lpadmin -p printer-name -o nobanner
-p printer-name |
バナーページをオプションにするプリンタ名 |
-o nobanner |
ユーザーが印刷要求を出すときにバナーページなしを指定できるようにする |
すべての印刷要求でバナーページを強制的に印刷させたい場合は、-o banner オプションを指定します。
バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。
次のコマンドの出力には、「Banner not required」という行が入っています。
$ lpstat -p printer-name -l
次の例では、コマンドはユーザーがプリンタ luna 上でバナーページなしを要求できるようにします。
# lpadmin -p luna -o nobanner
ディレクトリを /etc/lp/interfaces ディレクトリに変更します。
# cd /etc/lp/interfaces
バナーページをオフにしたいプリンタ名が付いているファイルを編集します。
nobanner="yes"
バナーページを再びオンにする場合は、nobanner 変数を no に変更します。
バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。
プリンタに印刷要求を出して、バナーページが印刷されないことを確認します。
印刷サービスを使用すると、複数のローカルプリンタを 1 つのクラスにグループ化できます。この作業は、lpadmin -c コマンドを使用しなければ実行できません。
プリンタクラスを設定すると、ユーザーは印刷要求の出力先として (個々のプリンタではなく) そのクラスを指定できます。そのクラスで空いている最初のプリンタが印刷に使用されます。その結果、プリンタはできる限りビジーに保たれるので、応答時間が短縮されます。
印刷サービスに認識されるデフォルトのプリンタクラスはなく、定義したプリンタクラスのみが存在することになります。プリンタクラスを定義するには、次の 3 つの方法があります。
プリンタタイプ別 (PostScript など)
場所別 (5 階など)
作業グループや部署別 (経理など)
また、1 つのクラスには特定の順序で使用される複数のプリンタを含めることができます。LP 印刷サービスでは、常に各プリンタがクラスに追加された順番に従って利用できるプリンタをチェックします。したがって、最初に高速プリンタにアクセスしたい場合は、高速プリンタを低速プリンタよりも先にクラスに追加します。その結果、高速プリンタで最大限の印刷要求が処理されることになります。低速プリンタは、高速プリンタが使用されているときのバックアッププリンタとして確保されます。
印刷要求の負荷は、ローカルプリンタのクラス内のプリンタ間でのみ調整されます。
クラス名も、プリンタ名と同様に固有の名前でなければなりません。クラス名は 14 文字以内の英数字で、下線 (_) を使用できます。
プリンタクラスは定義しなくてもかまいません。プリンタクラスを使用するとネットワーク上のユーザーに利点があると判断した場合にのみ、クラスを追加してください。
lpadmin コマンドを使用して、プリンタのクラスを定義します。
# lpadmin -p printer-name -c printer-class
-p printer-name |
プリンタのクラスに追加するプリンタ名 |
-c printer-class |
プリンタのクラス名 |
指定したプリンタが、印刷サーバーの /etc/lp/classes/printer-class ファイル内でそのクラスのリストの最後に追加されます。プリンタクラスが存在しない場合は、作成されます。
lpstat コマンドを使用して、プリンタクラスのプリンタを表示します。
$ lpstat -c printer-class
次の例では、コマンドはプリンタ luna をクラス roughdrafts に追加します。
# lpadmin -p luna -c roughdrafts
事前に選択しておくと、印刷サービスはプリンタ障害を検出したときに通知できます。次のいずれかの方法を選択すると、lpadmin -A コマンドまたは Admintool を使用してプリンタ障害通知を受け取ることができます。
root がログインしている端末にメッセージを書き込む
root に電子メールを送る
通知しない
ただし、lpadmin -A コマンドを使用すると、他にも選択したプログラムで指定されるメッセージをオプションとして受信できます。また、すでに知っているエラーに関する通知をオフにすることもできます。
障害通知を配信するプログラムを指定しなければ、障害警告の内容は事前に定義済みのメッセージです。このメッセージは、プリンタが印刷を停止しており、解決が必要であることを示します。
表 42-2 は、lpadmin -A コマンドでプリンタに設定できる警告値を示しています。これらの警告値は、印字ホイール、フォントカートリッジ、フォームについても設定できます。
表 42-2 印刷障害の警告値
-A alert の値 |
説明 |
---|---|
'mail [user-name]' |
警告メッセージを印刷サーバー上の root か lp、またはユーザー名として指定した user-name に電子メールで送信する |
'write [user-name]' |
警告メッセージを印刷サーバー上の root か lp のコンソールウィンドウ、またはユーザー名として指定した user-name のコンソールウィンドウに送信する。指定したユーザーが警告メッセージを受け取るには、印刷サーバーにログインしていなければならない |
'コマンド' |
警告ごとに command ファイルを実行する。環境変数とカレントディレクトリは、ファイルの実行の前後で保存復元される |
quiet |
障害が解決されるまで警告を停止する。この値は、ユーザー (root または指定したユーザー) が繰り返し警告を受け取るときに使用する |
none |
警告を送信しない。プリンタの障害警告を指定しない場合は、これがデフォルト値である |
lpadmin コマンドを使用してプリンタの障害警告を設定します。
# lpadmin -p printer-name -A alert [-W minutes]
-p printer-name |
プリンタ障害の警告を指定するプリンタ名 |
-A alert |
プリンタ障害が起きたときに出される警告の種類を指定する。alert に有効な値については、表 42-2 を参照。有効な値は mail、write、quiet などである |
-W minutes |
障害警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送信される |
障害警告の設定は、印刷サーバーの /etc/lp/printers/printer-name/alert.sh ファイルに入力されます。
次のコマンドの出力から、「On fault」見出しに続く情報をチェックします。
$ lpstat -p printer-name -l
次の例で、コマンドは障害警告をユーザー joe に電子メールで送信し、その後は 5 分ごとに送信するようにプリンタ mars を設定します。
# lpadmin -p mars -A 'mail joe' -W 5
次の例で、コマンドは障害警告をコンソールウィンドウに送信し、その後は 10 分ごとに送信するようにプリンタ venus を設定します。
# lpadmin -p venus -A write -W 10
次の例で、コマンドはプリンタ mercury の障害警告を停止します。
# lpadmin -p mercury -A none
次の例で、コマンドはプリンタ venus の障害が解決されるまで、障害警告を停止します。
# lpadmin -p venus -A quiet
障害通知を送信しないことを選択した場合には、問題を解決できるように、印刷障害を検出する方法が必要です。LP 印刷サービスは、障害のあるプリンタを継続して使用しません。プリンタ障害の警告に加えて、印刷要求が必要とするときに、印字ホイール、フォントカートリッジ、およびフォームを取り付けるようにシステム管理者に知らせる警告も設定できます。
lpadmin -F コマンドを使用すると、プリンタ専用の障害回復オプションを定義できます。
プリンタ障害は、用紙切れやトナーカートリッジの交換が必要であるなど、きわめて単純な場合があります。より重大な問題としては、完全なプリンタ障害や電源障害などがあります。プリンタ障害を解決すると、障害が発生したときに有効だった印刷要求は、次のいずれかの方法で印刷を開始します。
印刷を最初から開始する。
印刷を停止したページの先頭から印刷を再開する。
プリンタを使用可能にした後に、印刷を停止したページの先頭から印刷を再開する。
印刷を停止したページの先頭から印刷を再開するには、印刷フィルタが必要です。印刷フィルタは、プリンタに使用される制御シーケンスを記録してページ境界を追跡します。この処理は、印刷サービスに使用されるデフォルトフィルタでは実行できません。指定した印刷フィルタで回復処理を実行できなければ、印刷サービスから通知されます。フィルタの作成方法については、「新しい印刷フィルタを作成する方法」を参照してください。
プリンタ障害を解決した直後に印刷を再開したい場合は、enable コマンドを使用してプリンタを使用可能にします。
表 42-3 は、lpadmin -F コマンドでプリンタに設定できる障害回復値を示しています。
表 42-3 プリンタ障害回復の値
-F recover-options の値 |
説明 |
---|---|
beginning |
障害回復後に、ファイルの先頭から印刷を再開する |
continue | |
wait |
障害回復後に、プリンタを使用可能にするまで印刷が停止される。(enable コマンドで) プリンタを使用可能にすると、印刷は停止されたページの先頭から始まる。この回復オプションには印刷フィルタが必要 |
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpadmin コマンドを使用してプリンタ障害から回復する方法を設定します。
# lpadmin -p printer-name -F recovery-options
-p printer-name |
障害からの回復方法を指定するプリンタ名 |
-F recovery-options |
-beginning、-continue、-wait の 3 つの有効な回復オプション。recovery-options に有効な値については、表 42-3 を参照 |
障害回復の設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。
次のコマンドの出力から、「After fault」見出しに続く情報をチェックします。
$ lpstat -p printer-name -l
次の例では、コマンドは、印刷が停止されたページの先頭から再開するようにプリンタ luna を設定します。
# lpadmin -p luna -F continue
利用できるプリンタの一部またはすべてにアクセスできるユーザーを制限する必要がある場合があります。たとえば、一部のユーザーが高品質プリンタ上で印刷できないようにして経費を抑えることができます。プリンタへのユーザーアクセスを制限するには、印刷サーバー上で lpadmin -u コマンドを使用して「許可」リストと「拒否」リストを作成できます (Admintool を使用すると、許可リストのみを作成できます)。どちらのリストも作成しなければ、プリンタはそこにアクセスできる全ユーザーが利用できます。
許可リストには、指定したプリンタへのアクセスを許可されるユーザー名が入っています。拒否リストには、指定したプリンタへのアクセスを拒否されるユーザー名が入っています。
許可リストと拒否リストには、次の規則が適用されます。
リストの状態 |
アクセスの制限 |
---|---|
許可リストも拒否リストも作成しない、または両方のリストが空 |
全ユーザーがそのプリンタを使用できる |
許可リストで all を指定する |
そのプリンタには全ユーザーがアクセスできる |
拒否リストで all を指定する |
サーバー上の lp と root 以外の全ユーザーのアクセスが拒否される |
許可リストにエントリを作成する |
リストに指定されているユーザーだけがプリンタにアクセスできる。拒否リストは無視される |
拒否リストを作成し、許可リストは作成しないか許可リストを空にする |
拒否リストで指定されたユーザーはプリンタにアクセスできない |
実際にプリンタへのアクセスを制御しているのは印刷サーバーなので、許可リストと拒否リストを作成できるのは印刷サーバー上でだけです。許可リストと拒否リストを作成した場合、印刷サーバーは、プリンタへのユーザーアクセスを排他的に制御します。
表 42-4 は、プリンタへのユーザーアクセスを制限するために許可リストまたは拒否リストに追加できる値を示しています。
表 42-4 許可リストと拒否リストの値
user-list の値 |
説明 |
---|---|
user |
任意のシステム上の特定ユーザー |
all |
すべてのシステム上の全ユーザー |
none |
すべてのシステム上の全ユーザーが該当しない |
system!user |
特定システム上の特定ユーザー |
!user |
ローカルシステム上の特定ユーザー |
all!user |
任意のシステム上の特定ユーザー |
all!all |
すべてのシステム上の全ユーザー |
system!all |
特定システム上の全ユーザー |
!all |
ローカルシステム上の全ユーザー |
lpadmin コマンドを使用して、プリンタへのユーザーアクセスを許可または拒否します。
# lpadmin -p printer-name -u allow:user-list [deny:user-list]
-p printer-name |
許可または拒否ユーザーアクセスリストを適用するプリンタ名 |
-u allow:user-list |
許可ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはカンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。user-list に有効な値については、表 42-4 を参照 |
-u deny:user-list |
拒否ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはカンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。user-list に有効な値については、表 42-4 を参照 |
指定したユーザーが、印刷サーバーの次のファイル内でプリンタの許可または拒否ユーザーアクセスリストに追加されます。
/etc/lp/printers/printer-name/users.allow
/etc/lp/printers/printer-name/users.deny
許可ユーザーアクセスリストの user-list に none を指定した場合、印刷サーバー用に次のファイルは作成されません。
/etc/lp/printers/printer-name/alert.sh
/etc/lp/printers/printer-name/alert.var
/etc/lp/printers/printer-name/users.allow
/etc/lp/printers/printer-name/users.deny
次のコマンドの出力から、「Users allowed」または「Users denied」見出しに続く情報をチェックします。
$ lpstat -p printer-name -l
次の例で、コマンドはユーザー nathan と george によるプリンタ luna へのアクセスのみを許可します。
# lpadmin -p luna -u allow:nathan,george
次の例で、コマンドはユーザー nathan と george によるプリンタ asteroid へのアクセスを拒否します。
# lpadmin -p asteroid -u deny:"nathan george"
ユーザーが印刷クライアントから印刷要求を出すと、その印刷要求は印刷サーバー上の待ち行列に追加されてからプリンタに送信されます。印刷要求が待ち行列に入っている間は、クライアントシステムからの要求で取り消したり、その状態情報を取得したりできます。印刷要求の移動、停止、再開または優先度の変更などを実行するには、印刷サーバーにログインしなければなりません。これらの動作によって、印刷サービスを絶えずスムーズに機能させることができます。
印刷コマンドを使用すると、あらゆる印刷要求の管理作業を実行できます。Admintool を使用すると、印刷サーバーを変更するときに一部の印刷要求の管理作業を実行できます。表 42-5 は、Admintool で実行できる印刷要求の管理作業を示しています。
表 42-5 Admintool による印刷要求の管理
作業 |
Admintool で実行できるか |
---|---|
印刷要求の取り消し |
実行できない |
印刷要求の移動 |
実行できない |
印刷要求の優先順位の変更 |
実行できない |
印刷要求の受け付けまたは拒否 |
実行できる |
印刷の処理または停止 |
実行できる |
表 42-6 は、lp -H コマンドを使用して印刷要求の優先順位を変更するための値を示しています。
表 42-6 印刷要求の優先順位を変更する値
-H change-priority の値 |
説明 |
---|---|
-hold |
ユーザーが取り消すか、LP 印刷サービスに要求の印刷再開を指示するまで、印刷要求を停止する |
-resume |
停止されていた印刷要求を待ち行列に戻す。印刷要求は、優先順位と待ち行列内での位置に従って印刷される。すでに印刷中の印刷ジョブを停止すると、resume は印刷要求が次に印刷される要求になるように待ち行列の先頭に配置する |
-immediate |
印刷要求を待ち行列の先頭に配置する。要求がすでに印刷中であれば、次の要求をすぐに印刷できるように、印刷中の要求を停止する |
ネットワーク上の任意のシステムにログインします。
lpstat コマンドを使用して、プリンタと印刷要求の状態をチェックします。
ここには、最も一般的に使用するオプションだけを掲載してあります。他の有効なオプションについては、lpstat(1) のマニュアルページを参照してください。
$ lpstat -o [list] | -u [user-list]
lpstat コマンドを使用して印刷要求の状態をチェックすると、印刷要求ごとに 1 行ずつ表示されます。各行には、左から右に要求 ID、ユーザー、出力バイト数、要求日時、「being filtered」のような要求に関する情報が表示されます。
次の例で、コマンドはユーザー fred の印刷要求がプリンタ luna への待ち行列に 1 つ入っていることを示しています。
$ lpstat luna-1 fred 1261 Mar 12 17:34
次の例は、ユーザー paul には待ち行列に入っている印刷要求がないことを示しています。
$ lpstat -u paul
次の例は、プリンタ moon に 2 つの印刷要求があることを示しています。
$ lpstat -o moon moon-78 root 1024 Jan 14 09:07 moon-79 root 1024 Jan 14 09:08
enable コマンドと disable コマンド、または Admintool の「プリンタの変更 (Modify Printer)」ウィンドウの「印刷要求処理 (Process Print Requests)」フィールドを使用すると、プリンタが待ち行列に入っている要求の印刷を処理または停止するかを制御できます。プリンタを使用不可にすると、プリンタは待ち行列内の要求の印刷を停止します。ただし、要求はそのまま待ち行列に追加されます (要求が待ち行列に追加されないように、プリンタを設定して印刷要求を拒否させなければなりません。印刷要求を拒否する方法については、「印刷要求の受け付けまたは拒否」を参照してください)。
プリンタが使用不可になっている場合は、使用可能にしなければなりません。この状態は、プリンタ障害が起きると発生することがあります。プリンタを使用可能にすると、印刷サービスがそれ以後に印刷待ち行列の要求を拒否しても、待ち行列が空になるまで、印刷待ち行列からの要求が印刷されます。
図 42-1 は、プリンタが使用不可になったときに印刷要求の処理が中断される様子を示しています。
reject コマンドを使用して、プリンタで印刷要求を停止します。
# reject [-r "reason"] printer-name
-r "reason" |
プリンタが印刷要求を拒否している理由をユーザーに示す。理由は格納され、ユーザーがプリンタの状態をチェックする (lpstat -p) と表示される |
printer-name |
印刷要求を停止するプリンタ名 |
待ち行列に入れられた要求は、プリンタが使用可能になっている限りそのまま印刷されます。印刷を停止するようにプリンタを使用不可にする手順については、「プリンタを使用可能または使用不可にする方法」を参照してください。
accept コマンドを使用して、プリンタで印刷要求を受け付けるようにします。
# accept printer-name
lpstat コマンドを使用してプリンタの状態をチェックし、印刷要求を受け付けているか停止しているかを調べます。
$ lpstat -p printer-name
次の例で、コマンドはプリンタ luna の印刷要求を停止します。
# reject -r "luna is down for repairs" luna destination "luna" will no longer accept requests
次の例で、コマンドはプリンタ luna が印刷要求を受け付けるように設定します。
# accept luna destination "luna" now accepting requests
accept コマンドと reject コマンド、または Admintool の「プリンタの変更 (Modify Printer)」ウィンドウの「印刷要求受付 (Accept Print Requests)」フィールドを使用すると、印刷要求が格納される印刷待ち行列のオンとオフを切り替えることができます。
reject コマンドを使用すると、指定したプリンタの印刷待ち行列がオフになり、新しい印刷要求は印刷サーバーの待ち行列に入れなくなります。その待ち行列に入っているすべての印刷要求は、そのまま印刷されます。すでに待ち行列に入っている要求の印刷を停止したい場合は、そのプリンタを使用不可にしなければなりません。表 42-7 では accept、reject、enable、および disable コマンドの機能を比較します。
表 42-7 accept/reject コマンドと enable/disable コマンドの機能
コマンド |
機能 |
---|---|
accept |
印刷待ち行列に送信された印刷要求を受け付ける |
enable |
印刷待ち行列にある要求を印刷する |
reject |
印刷待ち行列に送信された印刷要求を拒否する |
disable |
現在印刷待ち行列にある印刷要求を停止する |
プリンタを使用不可にする方法については、「印刷の処理または停止」を参照してください。
印刷要求が拒否されると、印刷サービスはその要求を出したユーザーにメッセージを送り、指定されたプリンタには印刷要求が受け付けられていないことを通知します。
また、要求を受け付けない理由をコマンド行から指定できます。その理由は、ユーザーがプリンタの待ち行列をチェックしようとするとユーザーのシステムに表示されます。図 42-2 は、印刷待ち行列が拒否されたときに印刷要求が中断される様子を示しています。
disable コマンドを使用して、プリンタ上の印刷要求の印刷を停止します。
# disable [-c | -W] [-r "reason"] printer-name
プリンタのクラスを使用可能または使用不可にすることはできません。個々のプリンタのみを使用可能または使用不可にすることができます。
enable コマンドを使用して、プリンタ上で印刷要求の印刷を開始します。
# enable printer-name
プリンタが使用可能になっていることを確認します。
$ lpstat -p printer-name
次の例では、プリンタ luna 上の現在のジョブを停止し、後から印刷できるように保存して、プリンタが印刷要求の印刷を停止した理由を表示します。
# disable -r "changing the form" luna
次の例では、プリンタ luna 上で印刷要求の印刷を開始します。
# enable luna printer "luna" enabled
cancel コマンドを使用すると、印刷待ち行列から印刷要求を取り消したり、印刷中のジョブを取り消したりできます。cancel コマンドには、次の 3 つの使用方法があります。
cancel を使用すると、要求が取り消され、待ち行列内の次の要求が印刷されることを示すメッセージが表示されます。次の場合にのみ、印刷要求を取り消すことができます。
要求を出したユーザーが、要求を出したシステムにログインしている状態で取り消しを実行した場合
印刷サーバーの /etc/printers.conf ファイルで user-equivalence オプションが構成されていて、要求を出したユーザーが任意のクライアントシステムから取り消しを実行した場合
印刷サーバーに root または lp としてログインしている状態で取り消しを実行した場合
特定の要求を取り消すには、その要求 ID を知る必要があります。要求 ID は、luna-185 のように、プリンタ名、ハイフン、印刷要求番号からなっています。印刷要求を依頼すると、その要求 ID が表示されます。印刷要求 ID を忘れた場合は、-o printer オプションを指定して lpstat コマンドを使用すると ID を調べることができます。
lpstat コマンドを使用して、取り消す印刷要求の要求 ID を判別します。
詳細は、「印刷要求の状態をチェックする方法」を参照してください。
cancel コマンドを使用して印刷要求を取り消します。
$ cancel request-id | printer-name
印刷要求が取り消されていることを確認します。
$ lpstat -o printer-name
次の例では、luna-3 と luna-4 の印刷要求を取り消します。
$ cancel luna-3 luna-4 request "luna-3" cancelled request "luna-4" cancelled
次の例では、現在プリンタ luna 上で印刷中の印刷要求を取り消します。
# cancel luna request "luna-9" cancelled
cancel コマンドを使用して、特定のユーザーからの印刷要求を取り消します。
$ cancel -u user-list [printer-name]
次の例で、コマンドはプリンタ luna 上でユーザー george から依頼されたすべての印刷要求を取り消します。
# cancel -u george luna request "luna-23" cancelled
次の例で、コマンドはユーザー george から依頼されたすべての印刷要求をすべてのプリンタ上で取り消します。
# cancel -u george request "asteroid-3" cancelled request "luna-8" cancelled
プリンタの使用方法を変更する計画がある場合や、プリンタの使用を中止する場合は、それ以後の印刷要求を拒否するように LP 印刷サービスを設定し、現在待ち行列に入っている要求があればプリンタに移動するか取り消す必要があります。lpmove コマンドを使用すると、個々の印刷要求またはすべての印刷要求を別のローカルプリンタに移動できます。
要求 ID は印刷要求を移動しても変更されないので、ユーザーは引き続き各自の要求を調べることができます。新しく指定したプリンタでは満たせない要件 (ファイル内容形式やフォームなど) を持つ印刷要求は、移動できません。この種の印刷要求は取り消さなければなりません。
あるプリンタから別のプリンタにすべての要求を移動する場合は、要求 ID がわからなくてもかまいません。ただし移動する前に、影響を受ける印刷要求の数を調べておくとよいでしょう。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
(省略可能) 元のプリンタ上で印刷要求の要求 ID をチェックします。
# lpstat -o printer-name1
(省略可能) 宛先プリンタが印刷要求を受け付けているかどうかをチェックします。
# lpstat -p printer-name2
-p printer-name2 |
印刷要求の移動先となるプリンタ名 |
元のプリンタから宛先プリンタにすべての印刷要求を移動します。
# lpmove printer-name1 printer-name2
printer-name1 |
すべての印刷要求の移動元となるプリンタ名 |
printer-name2 |
すべての印刷要求の移動先となるプリンタ名 |
一部の要求を宛先プリンタ上で印刷できない場合は、元のプリンタの待ち行列内に残ります。要求 ID を使用すると、lpmove コマンドで特定の印刷要求を別のプリンタに移動することもできます。
元のプリンタ上で印刷要求の受け付けを開始します。
すべての印刷要求を別のプリンタに移動すると、lpmove コマンドはそのプリンタへの印刷要求の受け付けを自動的に停止します。そのプリンタへの新しい印刷要求の受け付けを開始したい場合は、この手順が必要です。
# accept printer-name1
次のコマンドを使用して、元のプリンタの待ち行列に残っている印刷要求をチェックします。
$ lpq -P printer-name1
次のコマンドを使用して、すべての指定した印刷要求が宛先のプリンタ待ち行列に移動していることを確認します。
$ lpq -P printer-name2
次の例では、lpmove コマンドにより印刷要求をプリンタ luna からプリンタ terra へ移動し、accept コマンドによりプリンタ luna に対し印刷要求の受け付けを再開するよう通知します。
# lpmove luna terra # accept luna
ユーザーが印刷要求を依頼し終わったら、その優先順位を印刷サーバーの待ち行列内で次のように変更できます。
印刷が終了していない場合は、その印刷要求を停止できます。要求を保留状態にして停止すると、現在印刷されている場合は、再開するまで印刷されません。他の印刷要求は、停止中の要求よりも先に印刷されます。
任意の印刷要求を待ち行列の先頭に移動できます。その場合、先頭の印刷要求は次に印刷されます。ジョブの印刷を即座に開始したい場合は、現在印刷中のジョブを停止して中断できます。
引き続き印刷したいジョブの優先順位を変更して、待ち行列内で優先順位が低い要求の前と、優先順位が同じか高い要求の後の間に移動できます。
lpstat コマンドを使用して、優先順位を変更したい印刷要求の要求 ID を判別します。
詳細は、「印刷要求の状態をチェックする方法」を参照してください。
lp コマンドを使用して、印刷要求の優先順位を変更します。
# lp -i request-id -H change-priority
-i request-id |
このコマンドで複数の要求 ID を指定できる。空白またはカンマを使用する。空白を使用する場合は、要求 ID のリストを引用符で囲む |
-H change-priority |
印刷要求の優先順位を変更する方法として、-hold、-resume、-immediate のいずれかを指定する。 change-priority に有効な値については、表 42-6 を参照 |
また、lp コマンドの -q オプションを使用すると、指定した印刷要求の優先順位を変更できます。優先順位は、最上位の 0 から最下位の 39 までの間で変更できます。
次の例で、コマンドは要求 ID が asteroid-79 の印刷要求を優先順位 1 に変更します。
# lp -i asteroid-79 -q 1
この章では、文字セット、印刷フィルタ、フォーム、およびフォントについての基本事項と、設定して管理する手順について説明します
この章で説明する手順は次のとおりです。
印刷については、第 39 章「印刷管理の概要」を参照してください。
プリンタでテキストを各種フォント書体で印刷する方法は、それぞれ異なります。たとえば、PostScript プリンタは、テキストをグラフィックスとして処理します。これらのプリンタは、複数のフォントを使用してテキストを生成し、ページ上の任意の位置、サイズ、または方向にテキストを配置できます。その他の形式のプリンタは、印字ホイール、フォントカートリッジ、プログラムされた選択可能な文字セットのいずれかを使用するため、フォントの種類と大きさには制限があります。通常、1 つのプリンタ形式には 1 つの印刷方法が適用されます。
必要に応じてプリンタにフォントを装着する必要があるという点で、LP 印刷サービスでは印字ホイールとフォントカートリッジを同様に扱うことができます。ホイールまたはカートリッジを物理的に装着する必要がある文字セットを、「プリンタに装着する文字セット」といいます。物理的に装着する必要がなく、プリンタにあらかじめプログラムされていて、印刷要求によって選択可能な文字セットを、「プリンタに組み込みの文字セット」といいます。
PostScript 以外のプリンタを設定する場合は、ユーザーが利用可能な、印字ホイールまたは選択可能な文字セットを LP 印刷サービスに指定する必要があります。ユーザーが印刷要求を出すときに、lp -S コマンドを使用すると、ジョブの印刷に使用する印字ホイールまたは選択可能な文字セットを指定できます。ユーザーは、すでに定義してある名前でフォントを参照するだけなので、実際に使用される文字セットの種類を知る必要はありません。たとえば、印刷ホイールを gothic と定義したとします。この gothic 印字ホイールを要求するには、lp -S gothic と入力します。
プリンタによってサポートされる選択可能文字セットは、そのプリンタの terminfo エントリに表示されています。たとえば、ln03 プリンタのエントリは、/usr/share/lib/terminfo/l/ln03 です。tput コマンドを使用して、terminfo データベースの任意のプリンタタイプの選択可能文字セットの名前を選択できます。tput コマンドの構文は次のとおりです。
tput -T printer-type csn
csn オプションは文字セット番号 (character set number) の省略形です。番号は、プリンタが初期化された後に常に設定されるデフォルトの文字セット番号である 0 で始まります。その他の文字セット名を表示するには、-0 の代わりに -1、-2、-3 などを使用してコマンドを繰り返してください。選択可能文字セットごとに、terminfo 名 (たとえば usascii、english、finnish など) が返されます。
通常、terminfo 文字セット名は、プリンタのマニュアルで使用されている文字セット名となるべく一致させてください。同じ文字セット名を使用しないメーカーもあるため、terminfo 名はプリンタタイプごとに異なる場合があります。
LP 印刷サービスを使用して選択可能文字セットを登録する必要はありません。ただし、より意味のある名前または別名を与えることができます。
プリンタで使用できる選択可能文字セットを指定しない場合、LP 印刷サービスは、プリンタが任意の文字セット名 (cs0、cs1、cs2 など) またはプリンタが認識する terminfo 名を受け付けることができると仮定します。
lpstat -p -l コマンドを使用して、印刷サーバーに接続されているプリンタごとに、定義されている選択可能文字セット名を表示できます。
PostScript のフォントは、terminfo データベースのエントリではなく PostScript フィルタによって制御されるため、lpstat -p -l コマンドを使用しても PostScript プリンタ用の文字セットは表示されません。PostScript フォントの管理方法については、「フォントの管理」を参照してください。
別の文字セットを使用するもう一つの方法は、物理的にプリンタに装着できる取り外し可能な印字ホイールまたはフォントカートリッジを使用することです。
プリンタに装着する文字セットを管理するには、LP 印刷サービスに、使用したい印字ホイール名と、プリンタが異なる印字ホイールを必要とするときの警告方法を指定します。次に、ユーザーが lp -S コマンドを使用して特定の文字セットを要求すると、スケジューラは印字ホイールを装着するよう警告を送信し、印刷要求が印刷待ち行列に入れられます。正しい印字ホイールを装着して、印字ホイールを装着したことを LP 印刷サービスに指示すると、ジョブが印刷されます。詳細は、「印字ホイールまたはフォントカートリッジを取り外すまたは装着する方法」を参照してください。
1 台のプリンタに対して複数の印字ホイールやカートリッジを指定しなければ、LP 印刷サービスは、プリンタが 1 つの固定印字ホイールまたはカートリッジしか持っておらず、ユーザーはプリンタを使用する際に特殊な印字ホイールやカートリッジを指定できないと見なします。
選択可能文字セットとは違って、印字ホイールまたはカートリッジ用に選択する名前は、terminfo データベースのエントリとは関係がありません。印字ホイール名またはカートリッジ名は、ユーザーが LP 印刷サービスと通信を行うためにだけ使用されます。
ただし、印字ホイールまたはカートリッジ用に選択する名前は、ユーザーがわかりやすいものにしてください。その名前がフォントの書体を表すようにしてください。さらに、その名前は、同じ種類の印字ホイールやカートリッジ、または選択可能文字セットを持つプリンタの場合には、同じ名前にします。それによって、ユーザーは、どのプリンタ、印字ホイール、カートリッジ、選択可能文字セットを使用するかに関係なく、フォントの書体 (文字セット) を指定できます。
システム管理者とプリンタユーザーは、印字ホイールまたはカートリッジに同じ名前を使用してください。そうしないと、ユーザーが指定する文字セットと管理者が装着するものが異なる可能性があります。
印字ホイールを確認する手順は、フォームを確認する手順と似ています。一部のプリンタは (通常、文字ベースの印字を行うプリンタ)、特定のフォントや文字セットを提供する印字ホイールや印字カートリッジのような、取り外し可能な印字ヘッドを持っています。ユーザーは名前の付いた文字セットを要求できます。その文字セットがない場合、LP 印刷サービスは要求元または管理者に通知します。印刷ジョブは、印字ホイールが変更されるまで、印刷待ち行列に格納されます。
LP 印刷サービスから出す警告を指定するのと同じ方法で、印字ホイールまたはカートリッジを装着する際に出す警告を指定します。警告の概要については、「障害の通知の設定」を参照してください。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
プリンタで使用できる印字ホイールまたはフォントカートリッジを定義します。
print-server# lpadmin -p printer-name -S hard-charset1[,hard-charset2...]
印字ホイールまたはフォントカートリッジの定義が、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに追加されます。
印刷サーバーの印刷クライアントであるシステムにスーパーユーザーまたは lp としてログインします。
印刷クライアントに対して同じ印字ホイールまたはフォントカートリッジを定義します。
print-client# lpadmin -p printer-name -S hard-charset1[,hard-charset2...]
このコマンドの変数は、手順 2 と同じです。
印字ホイールまたはフォントカートリッジの定義が、印刷クライアントの /etc/lp/printers/printer-name/configuration ファイルに追加されます。
印字ホイールまたはフォントカートリッジを使用する必要がある印刷クライアントごとに、手順 3 と 手順 4 を繰り返します。
印刷サーバーと印刷クライアント上で、次のコマンドの出力の中の「Character sets」見だしの後にある情報を確認します。
$ lpstat -p printer-name -l
次の例は、印刷クライアント asteroid のプリンタ luna 上で印字ホイール pica を定義するコマンドを示しています。
asteroid# lpadmin -p luna -S pica
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpadmin コマンドを使用して、プリンタ内の印字ホイールまたはフォントカートリッジを取り外します。
# lpadmin -p printer-name -M -S none
-p printer-name |
印字ホイールまたはフォントカートリッジを取り外すプリンタ名 |
-M -S none |
現在の印字ホイールまたはフォントカートリッジを取り外すように指定する |
現在の印字ホイールまたはフォントカートリッジが、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルから削除されます。
印字ホイールまたはフォントカートリッジをプリンタから削除します。
プリンタに新しい印字ホイールまたはフォントカートリッジを入れます。
lpadmin コマンドを使用して、新しい印字ホイールまたはフォントカートリッジを装着します。
# lpadmin -p printer-name -M -S hard-charset
-p printer-name |
印字ホイールまたはフォントカートリッジを装着するプリンタ名 |
-M -S hard-charset |
装着したい印字ホイールまたはフォントカートリッジのプリンタに装着する文字セット名 |
印字ホイールまたはフォントカートリッジが、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに追加されます。装着された印字ホイールまたはフォントカートリッジは、取り外されるか、新しいものが装着されるまで使用可能です。
次のコマンドの出力の中で、「Print wheels」または「Character set」の見だしの下にある情報をチェックします。印刷ホイールまたは文字セットの名前と注意「mounted」が表示されます。
$ lpstat -p printer-name -l
次の例は、プリンタ luna から現在の印字ホイールを取り外し、印字ホイール pica を装着するコマンドを示します。
# lpadmin -p luna -M -S none # lpadmin -p luna -M -S pica
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpadmin コマンドを使用して、印字ホイールまたはフォントカートリッジの装着を促す警告を設定します。
# lpadmin -S hard-charset -A alert [-Q requests] [-W minutes]
-S hard-charset |
警告を設定したい印字ホイールまたはフォントカートリッジのプリンタに装着する文字セット名 |
-A alert |
印字ホイールまたはフォントカートリッジが要求されたときに出される警告の種類を指定する。alert に有効な値については、表 42-2 を参照。有効な値は mail、write、quiet など。 mail または write を指定すると、あらかじめ定義された警告メッセージが表示される。この警告メッセージは、指定した印字ホイールまたはフォントカートリッジの装着を促すもので、それを使用するように設定されている 1 つ以上のプリンタ名が含まれる |
-Q requests |
警告が出される前に、印字ホイールまたはフォントカートリッジが、待ち行列に入っていなければならない印刷要求の数を指定する。このオプションを指定しなければ、待ち行列に印刷要求が 1 つ入っただけで警告が出される |
-W minutes |
警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送られる |
警告は、印刷サーバーの /etc/lp/pwheels/charset-name/alert.sh ファイルに追加されます。
次のコマンドの出力をチェックして、印字ホイールまたはフォントカートリッジの装着を促す警告が追加されているかどうかを確認します。
# lpadmin -S hard-charset -A list
あるいは、警告を出すために印刷要求に低い番号を設定した場合、最小限の要求を満たすために十分な印刷要求を出し、印字ホイールまたはフォントカートリッジの装着を促す警告を受け取ることを確認します。
次の例は、印刷待ち行列に elite 印字ホイールに対する 10 の印刷要求があるときに、elite に関して 5 分間隔で電子メールで警告が送られるように設定するコマンドを示しています。
# lpadmin -S elite -A mail -Q 10 -W 5
次の例は、印刷待ち行列に finnish フォントカートリッジに対する 5 つの印刷要求があるときに、finnish に関して 1 分間隔で電子メールで警告が送られるように設定するコマンドを示しています。
# lpadmin -S finnish -A mail -Q 5 -W 1
次の例は、印刷待ち行列に elite 印字ホイールに対する 5 つの印刷要求があるときに、elite に関して 10 分間隔でコンソールウィンドウに警告が送られるように設定するコマンドを示しています。
# lpadmin -S elite -A write -Q 5 -W 10
次の例は、elite 印字ホイールに警告が送られないように設定するコマンドを示します。
# lpadmin -S elite -A none
選択可能文字セットの terminfo 名が正しい場合は、この手順を実行する必要はありません。terminfo データベースの使用方法については、「サポートされていないプリンタの terminfo エントリを追加する」を参照してください。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
tput コマンドを使用して、指定したプリンタタイプの選択可能文字セット名を表示します。
# tput -T printer-type csn
-T printer-type |
terminfo データベースに入っているプリンタタイプ。terminfo データベースのエントリについては、「プリンタタイプ」を参照 |
n |
指定したプリンタタイプの選択可能文字セットを表す番号 (0、1、2、3、4、5 など)。プロンプト記号に続いて選択可能文字セット名が表示される。たとえば、cs1 と指定すると、english# と表示される |
選択可能文字セットの別名を設定します。
# lpadmin -p printer-name -S select-charset1=alias1[,select-charset2=alias2...]
-p printer-name |
選択可能文字セットの別名を設定するプリンタ名 |
-S select-charset |
別名を設定する選択可能文字セット名。この名前は、手順 2 で検索できる |
alias |
指定した選択可能文字セットの別名。選択可能文字セット名の他に、この別名を使用できる。 このコマンドで複数の別名を設定できる。別名を区切るには空白またはカンマを使用する。空白を使用する場合は、別名のリストを引用符で囲む |
別名は、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに追加されます。
印刷サーバーの印刷クライアントであるシステムにスーパーユーザーまたは lp としてログインします。
選択可能文字セットの別名を設定します。
# lpadmin -p printer-name -S select-charset1=alias1[,select-charset2=alias2...]
このコマンドの変数は、手順 3 と同じです。
別名は印刷クライアントの /etc/lp/printers/printer-name/configuration ファイルに追加されます。
印刷サーバーと印刷クライアント上で、次のコマンドの出力の中に選択可能文字セットの別名のリストがあることを確認します。
$ lpstat -p printer-name -l
または、選択可能文字セットに別名を使用する印刷要求を出して、出力をチェックします。
次の例は、選択可能文字セット名を表示し、ln03 プリンタタイプのプリンタ luna 上の usascii 選択可能文字セットの別名として text を指定するコマンドを示しています。
# tput -T ln03 cs0 usascii# tput -T ln03 cs1 english# tput -T ln03 csn2 finnish# tput -T ln03 csn3 japanese# tput -T ln03 cs4 norwegian# # lpadmin -p luna -S usascii=text
「印刷フィルタ」とは、ファイルの内容形式を出力先プリンタが受け付けられる内容形式に変換するプログラムのことです。
LP 印刷サービスはフィルタを使用して、次の機能を提供します。
ファイルを特定タイプのプリンタで正しく印刷できるように、1 つのデータ形式から別のデータ形式に変換する。
両面印刷、横方向印刷、ドラフト印刷、または高品質印刷などの特別な印刷モードを処理する。
プリンタの障害を検出して LP 印刷サービスに通知する。その結果、印刷サービスはユーザーとシステム管理者に警告を出すことができる。
すべての印刷フィルタが上記のすべての機能を実行できるわけではありません。各機能はプリンタに固有なので、別々に実装できます。
LP 印刷サービスは、表 43-1 に示す PostScript フィルタを提供します。これらのフィルタプログラムは、/usr/lib/lp/postscript ディレクトリに入っています。通常、PostScript 印刷を行う場合は、印刷サーバーの設定時にフィルタプログラムをインストールする以外に何も行う必要はありません。Admintool が提供されるフィルタを自動的に使用可能にします。ただし、他のプリンタを管理する場合は、それらのプリンタの印刷フィルタを管理する必要がある場合があります。
新しい印刷フィルタを作成するには、印刷フィルタプログラムを書き、印刷フィルタの定義を作成しなければなりません。フィルタには、入力形式、出力形式、フィルタ内でコマンド行引数を処理するための言語を提供する複雑なオプションが含まれます。説明と手順については、「新しい印刷フィルタの作成」を参照してください。
印刷フィルタは、印刷サーバーだけで追加、変更、または削除できます。
lpfilter コマンドを使用して、利用できるフィルタのリストを管理します。フィルタに関するシステム情報は、/etc/lp/filter.table ファイルに格納されます。lpfilter コマンドは、テーブルに書き出すフィルタに関する情報を、フィルタ記述子ファイルから取得します。提供されているフィルタ記述子ファイル (PostScript のみ) は、/etc/lp/fd ディレクトリに入っています。実際のフィルタプログラムは、/usr/lib/lp の下にあります。
LP 印刷サービスでは、定義できる印刷フィルタの数に制限はありません。使用しないフィルタを削除して LP 印刷サービスによる処理を減らすことができます。(その場合は、LP はすべてのフィルタを検査して特定の印刷要求に使用するフィルタを 1 つ見つけます。) 確信が持てない場合は、フィルタを削除しないでください。
フィルタを追加、変更、または削除すると、LP 印刷サービスによって提供されている元のフィルタの一部を上書きしたり、削除したりしてしまう可能性があります。必要に応じて元のフィルタを復元し、追加したフィルタを削除できます。
SunOS 5.x システムソフトウェアには、PostScript フィルタのデフォルトセットが組み込まれています。デフォルトセットは、Admintool によって印刷サーバーに自動的に追加されます。SunOS 4.1 で使用されていた TranScript フィルタは、SunOS 5.x にも相当するものがある場合とない場合があります。表 43-1 は、デフォルトの PostScript フィルタと、該当する TranScript フィルタが存在する場合はそのフィルタ名を示しています。
表 43-1 デフォルトの PostScript フィルタ
フィルタ |
動作 |
相当する TranScript |
---|---|---|
download |
ダウンロードフォント |
|
dpost |
ditroff から PostScript へ |
psdit |
postdaisy |
daisy から PostScript へ | |
postdmd |
dmd から PostScript へ | |
postio |
PostScript プリンタへのシリアルインタフェース | pscomm |
postior |
プリンタとの通信 | |
postmd |
マトリックス型グレースケールから PostScript へ | |
postplot |
plot から PostScript へ |
psplot |
postprint |
simple から PostScript へ |
enscript |
postreverse |
ページの反転または選択 |
psrev |
posttek |
TEK4014 から PostScript へ |
ps4014 |
SunOS 5.x には、次のフィルタは組み込まれていません。
TEX
oscat (NeWSprint opost)
Enscript
Enscript の代わりに postreverse、postprint、postio、dpost の各フィルタが組み込まれています。
Admintool は、印刷サーバーにデフォルトの PostScript フィルタを追加します。これらのフィルタでは処理できない印刷ニーズがある場合は、カスタム印刷フィルタの作成方法については、「新しい印刷フィルタを作成する方法」を参照してください。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpfilter コマンドを使用し、印刷フィルタの定義に基づく印刷フィルタを追加します。
# lpfilter -f filter-name -F filter-def
-f filter-name |
印刷フィルタ用に選択する名前 |
-F filter-def |
印刷フィルタの定義名 |
次のコマンドの出力の中の印刷フィルタについての情報をチェックして、印刷フィルタが追加されているか確認します。
# lpfilter -f filter-name -l
次の例は、daisytroff.fd 印刷フィルタ定義を持つ daisytroff 印刷フィルタを追加するコマンドを示しています。
# lpfilter -f daisytroff -F /etc/lp/fd/daisytroff.fd
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpfilter コマンドを使用して印刷フィルタを削除します。
# lpfilter -f filter-name -x
-f filter-name |
削除する印刷フィルタ名 |
-x |
指定したフィルタを削除する |
次のコマンドを使用して、フィルタが削除されていることを確認します。指定した名前のフィルタがないというエラーメッセージが表示されます。
# lpfilter -f filter-name -l
次の例は、daisytroff 印刷フィルタを削除するコマンドを示しています。
# lpfilter -f daisytroff -x
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpfilter コマンドを使用して、印刷フィルタに関する情報を要求します。
# lpfilter -f filter-name -l
-f filter-name |
情報を表示したい印刷フィルタ。利用できるすべての印刷フィルタに関する情報を表示するには、filter-name に all を指定する |
-l |
指定したフィルタに関する情報を表示する |
指定した 1 つ以上の印刷フィルタに関する情報が表示されます。
次の例は、postdaisy 印刷フィルタに関する情報を要求するコマンドと、それに応答して表示される情報を示しています。
# lpfilter -f postdaisy -l Input types: daisy Output types: postscript Printer types: any Printers: any Filter type: slow Command: /usr/lib/lp/postscript/postdaisy Options: PAGES * = -o* Options: COPIES * = -c* Options: MODES group = -n2 Options: MODES group¥=¥([2-9]¥) = -n¥1 Options: MODES portrait = -pp Options: MODES landscape = -pl Options: MODES x¥=¥(¥-*[¥.0-9]*¥) = -x¥1 Options: MODES y¥=¥(¥-*[¥.0-9]*¥) = -y¥1 Options: MODES magnify¥=¥([¥.0-9]*¥) = -m¥1
次の例は、daisytroff フィルタに関する情報をファイルにリダイレクトするコマンドを示しています (そのフィルタのフィルタ定義が作成されます)。これは、うっかりフィルタ定義を削除してしまった場合に便利です。
# lpfilter -f daisytroff -l > daisytroff.fd
次の例は、システムに追加されたすべての印刷フィルタを表示するコマンドと、それに応答して表示される情報を示しています。
# lpfilter -f all -l | grep Filter (Filter "download") Filter type: fast (Filter "postio") Filter type: fast (Filter "postior") Filter type: fast (Filter "postreverse") Filter type: slow
「フォーム」は、あらかじめ決められている形式に従って情報が印刷されている用紙です。普通紙と違って、通常、フォームにはテキストまたはグラフィックスが前もって印刷されています。フォームの一般的な例としては、企業のレターヘッド、送り状、小切手、領収書、ラベルなどがあります。
「フォーム」という用語には 2 つの意味があります。一つは物理的な媒体 (用紙) という意味で、もう一つは LP 印刷サービスの形式を定義するソフトウェアという意味です。
LP 印刷サービスを使用すると、フォームの使用方法を制御できます。この節では、フォームの追加、変更、削除、取り付けを行う方法と、フォームへのアクセスを制御する方法について説明します。
フォームを追加するときには、LP 印刷サービスに指示を与えて、そのフォームを利用可能なフォームのリストに加えます。また、フォームの記述と定義に必要な情報を与えなければなりません。フォームを追加するときに、その定義を入力できますが、はじめに定義を作成しておいて、ファイルに保存しておくことをお勧めします。ファイルを編集すれば、フォーム定義を変更できます。フォーム定義の作成方法については、「新しいフォーム定義を作成する方法」を参照してください。
LP 印刷サービスでは、フォーム定義は提供されません。
フォームを変更するには、異なる定義を持つフォームを追加し直さなければなりません。
LP 印刷サービスでは、定義できるフォームの数に制限はありません。ただし、不要なフォームは削除してください。不要なフォームがあると、印刷サービスに余計な負担をかける可能性があります。
フォームを印刷するには、プリンタに紙を装着し、コマンドを使用してフォームを「取り付け」、これによって、プリンタに送られる印刷要求がこのフォーム定義を使用して印刷されることを LP 印刷サービスに通知します。複数のフォームを使用する場合など、1 台のプリンタで異なる種類の印刷を行う場合には、次の作業を実行します。
紙を装着してフォームを取り付ける前にプリンタを使用不可にします。
フォームの準備ができたらプリンタを再び使用可能にします。そうしないと、LP 印刷サービスはプリンタでそのフォームを必要としないファイルを印刷し続けます。
フォームを取り付けるときには、正しく揃っているかどうかを確認してください。揃え方がフォームに対して定義されている場合は、揃え方が正しくなるようにプリンタを調整し終わるまで、フォームを取り付けた後でパターン印刷を繰り返すように要求できます。
プリンタに取り付けられているフォームの使用を変更または中止したい場合は、フォームを取り外して LP 印刷サービスに通知しなければなりません。
LP 印刷サービスにより、各プリンタにどのフォームが装着されているかを確認できます。また、フォームに印刷するときに必要な記述がなければ、LP 印刷サービスが通知します。フォームの記述を作成したり、各プリンタにフォームを装着したり取り外したりするのはシステム管理者の責任です。この作業はプリンタの設定時か、LP 印刷サービスからの警告時に行います。
ユーザーは印刷ジョブを印刷したいフォームを指定します。管理者は特定のフォームを装着して、フォームが使用できる状態にあり、どのプリンタに装着されているかを LP 印刷サービスに伝えます。ユーザーは特定のフォームを指定することによって印刷要求を出すことができます。LP 印刷サービスが要求を受け取ると、フォームの装着要求を警告メッセージとして管理者に送信します。
LP 印刷サービスから他の警告を要求するのと同じ方法で、フォームの取り付けに関する警告を要求します。警告の概要については、「障害の通知の設定」を参照してください。
LP 印刷サービスに対してフォームを定義し終わったら、チェックしたい情報に応じて 2 つのコマンドのどちらかでフォームの定義をチェックできます。
lpforms コマンドを使用してフォームの属性を表示します。また、コマンドの出力をファイルにリダイレクトして将来の参照に備えて保存できます。
lpstat コマンドを使用してフォームの現在の状態を表示します。内容を保護するため、位置揃えパターンは表示されません。
既存のフォーム名がわからない場合は、/etc/lp/forms ディレクトリの内容の一覧を表示して調べることができます。
どのプリンタやユーザーが、ネットワーク上で利用可能な一部またはすべてのフォームを使用できるかを制御できます。たとえば、経理部に属するユーザーだけが小切手のフォームを印刷できるようにしたい場合があります。また、特定のプリンタだけで利用できる小切手のフォームが必要な場合もあります。
フォームへのユーザーアクセスを制限するには、「フォームへのユーザーアクセスを制限する方法」を参照してください。フォームへのプリンタアクセスを制限するには、「フォームへのプリンタアクセスを制限する方法」を参照してください。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpforms コマンドを使用し、フォーム定義に基づくフォームを追加します。
# lpforms -f form-name -F /etc/lp/forms/form
-f form-name |
フォーム用に選択した名前 |
-F /etc/lp/forms/form |
フォーム定義名 |
次のコマンドの出力に、フォームについての情報があるかをチェックして、フォームが追加されているか確認します。
# lpforms -f form-name -l
次の例は、medical.fmd フォーム定義を使用する medical フォームを追加するコマンドを示します。
# lpforms -f medical -F /etc/lp/forms/medical.fmd
フォームを使用する前に、そのフォームへのアクセスを 1 つ以上のプリンタに与えておかなければなりません。「フォームへのプリンタアクセスを制限する方法」を参照してください。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpforms コマンドを使用してフォームを削除します。
# lpforms -f form-name -x
-f form-name |
削除するフォーム名 |
-x |
指定したフォームを削除する |
次のコマンドを使用して、フォームが削除されたか確認します。指定したフォーム名がないことを示すエラーメッセージが表示されます。
# lpforms -f form-name -l
次の例は、medical フォームを削除するコマンドを示しています。
# lpforms -f medical -x
印刷サーバーにスーパーユーザーまたは lp としてログインします。
reject コマンドを使用して、現在のフォームを取り外そうとしているプリンタ上で印刷要求を停止します。
# reject printer-name
printer-name |
フォームを取り外すプリンタ名 |
新しい印刷要求 (フォームを必要としない場合もあります) は、そのプリンタの待ち行列に入れられなくなります。
lpadmin コマンドを使用して、現在のフォームを取り外します。
# lpadmin -p printer-name -M -f none
このコマンドの変数 printer-name は、手順 2 と同じです。
現在のフォームは、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルから削除されます。
# lpadmin -p printer-name -M -f form-name[-a -o filebreak]
-p printer-name |
フォームを装着するプリンタ名 |
-M -f form-name |
装着するフォーム名 |
-a -o filebreak |
省略可能。フォームに位置揃えパターンが定義されている場合は、そのコピーを印刷できるようにする |
指定したフォームは、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに追加されます。
# accept printer-name
これで、プリンタは新しく装着したフォームで印刷する準備ができました。
次のコマンドの出力の中の「Form mounted」見だしの下にあるフォーム名をチェックし、フォームが装着されていることを確認します。
$ lpstat -p printer-name -l
あるいは、新しいフォームを必要とする印刷要求を出して、プリンタの出力をチェックします。
次の例は、現在装着されているフォームをプリンタ luna から取り外すプロセスを示しています。
# reject luna destination "luna" will no longer accept requests # lpadmin -p luna -M f none # accept luna destination "luna" now accepting requests
次の例は、medical フォームをプリンタ luna 上に装着するプロセスを示しています。
# reject luna destination "luna" will no longer accept requests # lpadmin -p luna -M f medical -a -o filebreak # accept luna destination "luna" now accepting requests
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpadmin コマンドを使用して、フォームの装着に関する要求警告を設定します。
# lpforms -f form-name -A alert [-Q requests] [-W minutes]
-f form-name |
要求警告を設定したいフォーム名 |
-A alert |
フォームが要求されるときに出す警告の種類を指定する。alert に有効な値について詳しくは、表 42-2 を参照。有効な値は mail、write、または quiet。 mail または write を選択すると、あらかじめ定義された警告メッセージが表示される。この警告メッセージは、指定されたフォームの装着を促すもので、そのフォームを使用するように設定されている 1 つ以上の複数のプリンタ名が含まれる |
-Q requests |
警告が出される前に、フォームが必要な印刷要求がいくつ待ち行列に入っていなければならないかを指定する。このオプションを指定しなければ、印刷要求が待ち行列に 1 つ入っただけで警告が出される |
-W minutes |
警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送られる |
次のコマンドの出力をチェックして、そのフォームに関する警告が追加されていることを確認します。
# lpforms -f form-name -A list
あるいは、警告を出すために印刷要求の低い番号を設定した場合、最小限の要求を満たすために十分な印刷要求を出し、フォームの装着を促す警告を受け取ることを確認します。
次の例は、印刷待ち行列に letterhead フォームに関する 10 の印刷要求があるときに、letterhead に関して 5 分ごとに電子メールで警告が送られるように設定するコマンドを示します。
# lpforms -f letterhead -A mail -Q 10 -W 5
次の例は、印刷待ち行列に letterhead フォームに関する 5 の印刷要求があるときに、letterhead に関して 10 分ごとにコンソールウィンドウに警告が送られるように設定するコマンドを示します。
# lpforms -f letterhead -A write -Q 5 -W 10
次の例は、invoice フォームに関して要求警告が送られないように設定するコマンドを示します。
# lpforms -f invoice -A none
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpforms コマンドを使用して、フォームに関する情報を要求します。
# lpforms -f form-name -l
-f form-name
|
情報を表示したいフォーム名。利用できるすべてのフォームに関する情報を表示するには、form-name に all を指定する |
-l |
指定したフォームを表示する |
指定した 1 つ以上のフォームに関する情報が表示されます。
次の例は、medical フォームに関する情報を表示するコマンドを示しています。
# lpforms -f medical -l Page length: 62 Page width: 72 Number of pages: 2 Line pitch: 6 Character pitch: 12 Character set choice: pica Ribbon color: black Comment: Medical claim form
次の例は、medical フォームに関する情報をファイルにリダイレクトするコマンドを示しています (このコマンドは、そのフォームのフォーム定義を作成します)。これは、うっかりフォーム定義を削除してしまった場合に便利です。
# lpforms -f medical -l > medical.fmd
印刷サーバーにログインします。
lpstat コマンドを使用して、フォームの現在の状態に関する情報を要求します。
$ lpstat -f form-name
-f form-name |
現在の状態を表示したいフォーム名。すべてのフォームの現在の状態を表示したい場合は、form-name に all を指定する |
指定した 1 つ以上のフォームの現在の状態に関する情報が表示されます。
次の例は、medical フォームの状態を表示しています。
$ lpstat -f medical,payroll form medical is available to you
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpforms コマンドを使用して、フォームへのユーザーアクセスを許可または拒否します。
# lpforms -f form-name -u allow:user-list | deny:user-list
-f form-name |
ユーザーアクセスの許可または拒否リストを作成するためのフォーム名 |
-u allow:user-list |
ユーザーアクセスの許可リストに追加するユーザー名。複数のユーザーログイン ID を指定する場合は、空白またはカンマで区切る。空白で区切る場合は、ID のリストを引用符で囲む。user-list の有効な値については、表 42-4 を参照
|
-deny:user-list |
ユーザーアクセス拒否リストに追加するユーザー名。複数のユーザーログイン名を指定する場合は、空白またはカンマで区切る。空白で区切る場合は、ID のリストを引用符で囲む。user-list の有効な値については、表 42-4 を参照 |
印刷サーバーの次のどちらかのファイルの指定されたフォーム用の許可または拒否のユーザーアクセスリストに、指定した 1 人以上のユーザーが追加されます。
/etc/lp/forms/form-name/allow /etc/lp/forms/form-name/deny
lpforms コマンドを使用して、ユーザーアクセスの許可リストと拒否リストを確認します。
# lpforms -f form-name -l
次の例は、ユーザー nathan と marcia にのみ check フォームへのアクセスを許可するコマンドを示しています。
# lpforms -f check -u allow:nathan,marcia
次の例は、ユーザー jones と smithによる dental フォームへのアクセスを拒否するコマンドを示しています。
# lpforms -f dental -u deny:"jones,smith"
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpadmin コマンドを使用して、プリンタ上でのフォームの使用を許可または拒否します。
# lpadmin -p printer-name -f allow:form-list | deny:form-list
-p printer-name |
フォームの許可または拒否リストを作成するプリンタ名 |
-f allow:form-list | deny:form-list |
許可または拒否リストに追加されるフォーム名。複数のフォーム名は空白またはカンマで区切る。空白で区切る場合は、フォーム名のリストを引用符で囲む |
指定した 1 つ以上のフォームは、印刷サーバーの次のどちらかのファイルの許可または拒否フォームリストに追加されます。
/etc/lp/printers/printer-name/form.allow /etc/lp/printers/printer-name/form.deny
次のコマンドを使用して、許可リストと拒否リストを確認します。
# lpstat -p printer-name -l
次の例では、プリンタ luna に medical、dental、check の各フォームへのアクセスのみを許可します。
# lpadmin -p luna -f allow:medical,dental,check
次の例では、プリンタ luna による medical、dental、check の各フォームへのアクセスを拒否します。
# lpadmin -p luna -f deny:"medical dental payroll"
レーザプリンタがある場合は、PostScript 用のフォントをインストールして管理する必要があります。PostScript フォントをインストールするシステムと、その管理方法も決定する必要があります。多くのプリンタの場合、プリンタのインストール作業の一部としてフォントを設定します。
PostScript フォントは、プリンタかプリンタと通信を行うシステムのどちらかに、アウトライン形式で格納されます。文書の印刷時に、PostScript インタプリタは、アウトライン記述から適切な大きさの各文字を必要に応じて生成します。文書に必要なフォントが使用するプリンタに格納されていない場合は、文書が印刷される前にそのフォントをプリンタに転送しなければなりません。この転送処理を「フォントのダウンロード」といいます。
フォントは、次のいくつかの方法で格納または使用されます。
「プリンタ常駐フォント」は、プリンタに常時格納されています。これらのフォントは、メーカーによってプリンタの読み取り専用メモリー (ROM) にインストールされている場合があります。プリンタがディスクを備えている場合は、そのディスクにフォントをインストールしなければならないことがあります。ほとんどの PostScript プリンタには、35 の標準フォントが付いています。
「常時ダウンロードフォント」は、PostScript の exitserver プログラムを使用してプリンタに転送されます。常時ダウンロードフォントは、プリンタの電源を切るまでプリンタのメモリーに残っています。ダウンロードフォントに割り当てられたメモリーによって、PostScript 印刷要求では利用可能なサーバーのメモリーが減少します。exitserver プログラムを使用するには、プリンタシステムのパスワードが必要で、プリンタ管理者が使用します。プリンタで出力する大部分の印刷要求に特定のフォントを使用するときは、そのフォントを常時ダウンロードするようにしてください。
あまり頻繁に使用されないか、特殊な目的で使用されるフォントは、ユーザーのシステムに格納できます。ユーザーは、印刷要求を出すときにこれらのフォントを指定できます。そのフォントは印刷要求に追加されてプリンタに転送されます。印刷要求が処理されると、フォントに割り当てられたメモリー空間は、他の印刷要求が使用できるように解放されます。
「ホスト常駐フォント」は、多数のユーザーによって共有されるシステムに格納されます。フォントを格納するシステムは、印刷サーバーでも印刷クライアントでもかまいません。各ユーザーは印刷する文書のフォントを要求指定できます。この方法は、多数のフォントを利用できるときや、これらのフォントがすべての印刷要求で使用されるとは限らないときに便利です。そのフォントが印刷サーバーに接続されたプリンタでのみ使用される場合は、印刷サーバーに格納してください。そのフォントが 1 つのシステム上で、ネットワーク上の複数のプリンタに要求を依頼する可能性があるユーザーによって使用される場合は、フォントはそのユーザーのシステムに格納してください。
LP 印刷サービスには、ホスト常駐フォントを管理するための特殊なダウンロード用のフィルタがあります。また、troff プログラムで使用するために、多くの PostScript プリンタに搭載された 35 の標準 PostScript フォント用の troff のフォント幅テーブルも提供しています。
ほとんどの PostScript プリンタは、プリンタ内蔵の ROM にフォントが搭載されています。プリンタによっては、追加フォントを格納するためのディスクが用意されています。プリンタをインストールするときに、そのプリンタ用のフォントリストにプリンタ常駐フォントを追加してください。プリンタ常駐フォントがわかっていれば、フォントをネットワーク経由で必要以上に転送することがなくなります。各プリンタには搭載されているフォントの独自のリストがあります。これは、次のファイルに入っています。
/etc/lp/printers/printer-name/residentfonts
プリンタを印刷サーバーに接続するときには、印刷サーバー上にあってプリンタにダウンロードできるフォントが、residentfonts ファイル内のリストに含まれているかどうかを確認します。
プリンタ常駐フォントのリストが入っているファイルは、vi などのテキストエディタを使用して編集しなければなりません。
PostScript の文書がプリンタにダウンロードされていないフォント指定を含んでいるときは、「ダウンロードフィルタ」がこの印刷要求を管理します。ダウンロードフィルタは PostScript の文書作成規則を使用して、ダウンロードするフォントを決定します。
LP 印刷フィルタには、高速フィルタと低速フィルタがあります。高速フィルタは、印刷するファイルをすばやく準備し、フィルタが処理している間にプリンタにアクセスしなければなりません。低速フィルタはファイルの変換に時間がかかり、フィルタが処理している間にプリンタにアクセスする必要はありません。低速フィルタの例には、ASCII ファイルから PostScript ファイルへのフィルタがあります。
ダウンロードフィルタは高速フィルタです。フォントが印刷サーバー上にある場合は、フォントを自動的にダウンロードします。また、ダウンロードフィルタを使用して、印刷サーバーにフォントを転送することもできます。そのためには、lp コマンドに -y オプションを指定して、ダウンロードフィルタを低速フィルタとして呼び出すような新しいフィルタテーブルのエントリを作成します。あるいは、入力タイプを変更して、このフィルタの選択を強制することもできます。
PostScript の文書を検索して、要求されているフォントを判別します。これらの要求は、ヘッダコメントの PostScript 構造化コメント %%DocumentFonts: font1 font2 ... で指定されます。
プリンタ常駐フォントのリストを検索して、要求されたフォントをダウンロードしなければならないかどうかを判別します。
フォントがプリンタ上になければ、ダウンロードフィルタは (マップテーブルから適切なファイル名を読み取って) ホスト常駐フォントのディレクトリを検索し、要求されたフォントが利用可能かどうかを判別します。
そのフォントが利用可能であれば、フィルタはそのフォントのファイルを取り出し、印刷するファイルに追加します。
フォント定義ファイルとソースファイル (印刷するファイル) を PostScript プリンタに送ります。
フォントによっては、ホストシステムに格納されており、特定の印刷要求に応じてプリンタに転送されるものがあります。管理者は、システム上のすべてのユーザーが PostScript フォントを使用できるように管理する必要があります。そのためには、これらのフォントのインストール方法とインストール場所を知っておかなければなりません。フォントは名前で要求され、ファイルに格納されているので、LP 印刷サービスはフォント名とフォントを定義しているファイル名を対応付けるマップファイルを持っています。ホスト常駐フォントをインストールするときには、マップファイルとフォントリストの両方を更新しなければなりません。
PostScript プリンタで利用できるフォントは、ユーザーが作成した /usr/share/lib/hostfontdir/typeface/font ディレクトリに格納されます。この場合、typeface は palatino や helvetica などの名前に置き換えられ、font は bold や italic などの名前に置き換えられます。
印刷サーバーまたは印刷クライアント上でスーパーユーザーまたは lp としてログインします。
/etc/lp/printers/printer-name ディレクトリに変更します。
# cd /etc/lp/printers/printer-name
printer-name |
ダウンロードされた PostScript フォントをインストールするプリンタ名 |
residentfonts ファイルが存在しない場合は作成します。
# touch residentfonts
常駐させるダウンロードフォントを初めて追加する場合は、このファイルが存在しないことがあります。
residentfonts ファイルを編集して、すべてのプリンタ常駐フォントとダウンロードフォントを追加します。
vi などのエディタを使用できます。
ファイルを保存します。
印刷サーバーまたは印刷クライアント上でスーパーユーザーまたは lp としてログインします。
hostfontdir ディレクトリが存在しない場合は作成します。
# cd /usr/share/lib # mkdir hostfontdir # chmod 775 hostfontdir
# mkdir typeface
フォントファイルを適切なディレクトリにコピーします。
# cp filename /usr/share/lib/hostfontdir/typeface/font
マップテーブルに組み込むフォント名とファイル名を追加します。
/usr/share/lib/hostfontdir ディレクトリに変更します。
vi などのテキストエディタを使用して map ファイルを編集します。
テーブルに追加したいフォントごとに 1 行ずつエントリを追加します。エントリには、フォント名、スペース 1 個、フォントが常駐するファイル名の順に入力します。たとえば、次のようになります。
Palatino-Bold /usr/share/lib/hostfontdir/palatino/bold
ファイルを保存します。
適切なシステム上のマップテーブルにサンプルエントリを入れておけば、ユーザーは各自の印刷ジョブに (たとえば、Palatino Bold などの) フォントを適用できます。このフォントを含む印刷要求を依頼すると、LP 印刷サービスはそのファイルに /usr/share/lib/hostfontdir/palatino/bold のコピーを追加してから、プリンタに送信します。
troff を使用している場合は、このフォント用の新しいフォント幅テーブルを標準 troff フォントディレクトリ内で作成してください。
この章では、LP 印刷サービスのカスタマイズについての概要と手順について説明します。
この章で説明する手順は次のとおりです。
プリンタの概要については、第 39 章「印刷管理の概要」を参照してください。
LP 印刷サービスによって設定されるプリンタポート特性には、プリンタの通信設定と互換性がなければなりません。LP 印刷サービスから提供されたデフォルトのプリンタポート設定値がプリンタで機能しない場合は、プリンタのマニュアルを参照し、そのプリンタが LP 印刷サービスに対してどのような設定値が必要かを調べてください。プリンタ通信設定を設定および表示するには、stty コマンドを使用します。
表 44-1 は、LP 印刷サービスに使用されるデフォルトの stty 設定値を示しています。
表 44-1 LP 印刷サービスに使用される stty のデフォルト設定値
オプション |
意味 |
---|---|
-9600 |
ボーレートを 9600 に設定する |
-cs8 |
8 ビットバイトを設定する |
-cstopb |
1 バイトあたり 1 ストップビットを送信する |
-parity |
パリティを生成しない |
-ixon |
XON/XOFF (START/STOP または DC1/DC3 ともいう) を使用可能にする |
-opost |
この表の以下のすべての設定値を使用して「処理後出力」を実行する |
-olcuc |
小文字を大文字に割り当てない |
-onlcr |
改行をキャリッジリターン/改行に変更する |
-ocrnl |
キャリッジリターンを改行に変更しない |
-onocr |
カラム 0 の位置でもキャリッジリターンを出力する |
-n10 |
改行の後に遅延を入れない |
-cr0 |
キャリッジリターンの後に遅延を入れない |
-tab0 |
タブの後に遅延を入れない |
-bs0 |
バックスペースの後に遅延を入れない |
-vt0 |
垂直タブの後に遅延を入れない |
-ff0 |
用紙送りの後に遅延を入れない |
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpadmin コマンドを使用してプリンタポート特性を調整します。
# lpadmin -p printer-name -o "stty=options"
-p printer-name |
ポート特性を調整するプリンタ名 |
-o "stty=options" |
options で指定したポート特性 (stty オプション) を設定する。このコマンドで 1 つ以上の stty オプションを変更できる。オプションを区切るには空白を使用し、オプションを一重引用符で囲む。 オプションについては、stty(1) のマニュアルページを参照。LP 印刷サービスで使用されるデフォルトの stty 設定については、表 44-1 を参照 |
次のコマンドを使用して、プリンタポート特性が変更されたかどうかを確認します。
# stty -a
次の例で、コマンドはプリンタ luna のポート特性を設定します。-parenb オプションはパリティチェック/生成を使用可能にし、parodd は奇数パリティの生成を設定し、cs7 は文字サイズを 7 ビットに設定します。
# lpadmin -p luna -o "stty='parenb parodd cs7'"
次の例で、コマンドはプリンタ venus の端末ボーレートを 19200 に設定します。
# lpadmin -p venus -o "stty=19200"
LP 印刷サービスは、インタフェースプログラムと terminfo データベースを使用して各プリンタを初期化し、選択されたページサイズ、文字ピッチ、行ピッチ、および文字セットを設定します。
各プリンタは、terminfo データベース内で短縮名を使用して識別されます。terminfo データベースから要求される名前は、TERM シェル変数を設定するのに使用する名前と同じです。また、この名前はプリンタを設定するときに指定するプリンタタイプでもあります。たとえば、各種の PostScript プリンタのエントリは、/usr/share/lib/terminfo/P に入っています。SunOS 5.x システムに組み込まれているデフォルトエントリは、PS (PostScript 用) と PSR (Reverse PostScript 用) です。
プリンタの terminfo エントリが見つからなくても、ページサイズ、ピッチ、および文字セットを自動選択しないで、LP 印刷サービスでプリンタを使用できます。ただし、印刷要求ごとに正しいモードでプリンタが設定されないという問題が起きることがあります。
使用中のプリンタタイプの terminfo エントリがないが、プリンタを正しいモードに設定しておきたい場合は、プリンタで使用するインタフェースプログラムをカスタマイズするか、terminfo データベースにエントリを追加できます。terminfo データベース内の端末エントリやプリンタエントリには、多数の項目が入っており、定義されています。しかし、LP 印刷サービスはそのうち 50 未満の項目しか使用しません。表 44-2 は、プリンタに必要な terminfo 項目を示しています。
表 44-2 プリンタに必要な terminfo 項目
項目 |
|
意味 |
---|---|---|
ブール値 |
|
|
|
cpix |
文字ピッチを変更すると解像度が変わる |
|
daisy |
プリンタで文字セットを変更するには演算子が必要 |
|
lpix |
行ピッチを変更すると解像度が変わる |
数値 |
|
|
|
bufsx |
印刷前にバッファされるバイト数 |
|
cols |
1 行の列数 |
|
cps |
1 秒あたりの文字の平均印刷速度 |
|
it |
最初はスペース n 個分ごとのタブ |
|
lines |
1 ページの行数 |
|
orc |
1 文字あたりの水平解像度 |
|
orhi |
1 インチあたりの水平解像度 |
|
orl |
1 行あたりの垂直解像度 |
|
orvi |
1 インチあたりの垂直解像度 |
文字列 |
|
|
|
chr |
水平解像度を変更する |
|
cpi |
1 インチあたりの文字数を変更する |
|
cr |
キャリッジリターン |
|
csnm |
文字セット名のリスト |
|
cudl |
1 行下げる |
|
cud |
キャリッジを n 行下に移動する |
|
cuf |
キャリッジを n 列右に移動する |
|
cvr |
垂直解像度を変更する |
|
ff |
紙送りする |
|
hpa |
水平絶対位置 |
|
ht |
次の 8 スペースタブストップまでのタブ |
|
if |
初期化ファイル名 |
|
iprog |
初期化プログラムのパス名 |
|
is1 |
プリンタ初期化文字列 |
|
is2 |
プリンタ初期化文字列 |
|
is3 |
プリンタ初期化文字列 |
文字列 |
|
|
|
lpi |
1 インチあたりの行数を変更する |
|
mgc |
マージン (上、下、横) をすべてクリアする |
|
rep |
文字を n 回繰り返す |
|
rwidm |
倍幅の印刷を使用不可にする |
|
scs |
文字セットを選択する |
|
scsd |
文字セットの定義を開始する |
|
slines |
ページの長さを 1 ページあたり n 行に設定する |
|
smgl |
現在の列の左マージンを設定する |
|
smglp |
左マージンを設定する |
|
smgr |
現在の列の右マージンを設定する |
|
smgrp |
右マージンを設定する |
|
smglr |
左右のマージンを設定する |
|
msgt |
現在の行の上マージンを設定する |
|
smgtp |
上マージンを設定する |
|
smgb |
現在の行の下マージンを設定する |
|
smgbp |
下マージンを設定する |
|
smgtb |
上下のマージンを設定する |
|
swidm |
倍幅の印刷を使用可能にする |
|
vpa |
垂直絶対位置 |
プリンタの terminfo エントリを作成する前に、まず、そのプリンタをサポートする既存の terminfo エントリがないことを確認してください。そのためには、類似するプリンタがあれば、そのエントリを使用してプリンタを設定してください。
プリンタの terminfo エントリ名を決定します。
/usr/share/lib/terminfo ディレクトリ内のディレクトリには、有効な terminfo エントリがすべて入っています。それを参考にしてプリンタ名を選択してください。
プリンタの terminfo エントリファイルを作成します。
LP 印刷サービスに新しいプリンタを追加するために terminfo エントリ内で定義しなければならない項目については、表 44-2 を参照してください。terminfo データベースの構造については、terminfo(4) のマニュアルページを参照してください。
新しい terminfo エントリを作成しやすいように、infocmp コマンドを使用して既存の terminfo エントリをファイルに保存します。これは、作成したいエントリに似た terminfo エントリがある場合に便利な方法です。たとえば、次のコマンドで ps エントリを ps_cust ファイルに保存すると、新しい terminfo エントリになります。
infocmp ps > ps_cust
terminfo エントリをコンパイルして terminfo データベースに入れます。
# tic terminfo_entry
terminfo_entry |
作成した terminfo エントリファイル |
/usr/share/lib/terminfo ディレクトリ内で新しい terminfo エントリファイルをチェックします。
標準プリンタインタフェースプログラムでサポートされないプリンタを使用する場合は、独自のプリンタインタフェースプログラムを提供できます。標準プログラムをコピーし、指定したプリンタを使用するように LP 印刷サービスに指示できます。ただし、まず標準プログラムについて理解する必要があります。次の節では、標準プログラムについて説明します。
プリンタインタフェースプログラムの機能は次のとおりです。
必要に応じてプリンタポートを初期化する。標準プリンタインタフェースプログラムは、stty コマンドを使用してプリンタポートを初期化する。
プリンタハードウェアを初期化する。標準プリンタインタフェースプログラムは、terminfo データベースと TERM シェル変数から制御シーケンスを取得する。
必要に応じてバナーページを印刷する。
印刷要求で指定された部数を印刷する。
リリース 3.2 より前の UNIX System V のプリンタインタフェースプログラムがある場合は、SunOS 5.x の LP 印刷サービスに使用できます。ただし、一部の -o オプションは SunOS 5.x の LP 印刷サービス内で標準化されていて、すべてのプリンタインタフェースプログラムに渡されます。これらのオプションは、古いインタフェースで使用される同じ名前のオプションの妨げとなることがあります。
プリンタポートを開く処理は、プリンタインタフェースプログラムではなく LP 印刷サービスが受け持ちます。プリンタポートは標準出力としてプリンタインタフェースプログラムに与えられ、プリンタはプリンタインタフェースプログラムの「制御端末」として識別されるので、ポートが「ハング」するとプリンタインタフェースプログラムに SIGHUP 信号が送信されます。
LP 印刷サービスは、標準 (モデル) プリンタインタフェースプログラム /usr/lib/lp/model/standard を使用して、表 44-3 の印刷デフォルトを設定します。
表 44-3 デフォルトのプリンタポート特性
特性 |
デフォルト設定 |
---|---|
デフォルトフィルタ |
None |
文字ピッチ |
None |
行ピッチ |
None |
ページ幅 |
None |
ページ長 |
None |
文字セット |
None |
stty オプション |
9600 cs8 -cstopb -parenb -parodd ixon -ixany opost -olcuc onlcr -ocrnl -onocr -onlret -ofill nl0 cr0 tab0 bs0 vt0 ff0 |
0 |
ボーレートや出力オプションなどの端末特性を変更する必要がある場合は、標準プリンタインタフェースプログラム内で、次のコメントから始まるセクションを探します。
## Initialize the printer port
印刷し終ると、インタフェースプログラムは印刷ジョブの状態を示すコードを返して終了します。終了コードは、プリンタインタフェースプログラムの最後のエントリです。
表 44-4 は、終了コードとそのコードが LP 印刷サービスでどのように解釈されるかを示しています。
表 44-4 プリンタインタフェースプログラムの終了コード
コード |
LP 印刷サービスにとっての意味 |
---|---|
0 |
印刷要求は正常に完了した。プリンタ障害が発生した場合は、クリアされた |
1 〜 127 |
要求の印刷中に問題が発生した (たとえば、印字できない文字が多すぎる、要求がプリンタの容量を超えているなど)。LP 印刷サービスは、その要求を依頼したユーザーに、印刷中にエラーが発生したことを通知する。このエラーはその後の印刷要求には影響しない。プリンタ障害が発生するとクリアされる |
128 |
このコードは、LP 印刷サービスが内部で使用するために予約されている。インタフェースプログラムは、このコードを返して終了してはいけない |
129 |
要求の印刷中にプリンタ障害が発生した。この障害は、その後の印刷要求に影響を及ぼす。プリンタの障害回復が LP 印刷サービスに管理者によって問題が解決されるまで待つように指示すると、LP 印刷サービスはプリンタを使用不可にする。障害回復後に印刷を続けようとすると、LP 印刷サービスはプリンタを使用不可にしないが、数分後にそのまま印刷しようとする |
129 より大きい場合 |
これらのコードは、LP 印刷サービスが内部で使用するために予約されている。インタフェースプログラムは、この範囲内のコードを返して終了してはいけない |
プログラムがコード 129 を返して終了すると、root はプリンタ障害を警告されます。また、LP 印刷サービスは、障害がクリアされた後に要求を最初から印刷し直さなければなりません。要求全体を印刷し直したくない場合は、インタフェースプログラムに障害メッセージを LP 印刷サービスへ送信させることもできますが、障害がクリアされるまで待つことになります。障害がクリアされると、インタフェースプログラムはファイルの印刷を再開できます。印刷が終了すると、プリンタインタフェースプログラムは障害が発生しなかった場合と同様に終了コード 0 を返すことができます。このアプローチには、障害が自動的にクリアされた場合に、それをインタフェースプログラムが検出できるので、管理者がプリンタを再び使用可能にする必要がないという利点もあります。
lp.tell プログラムを使用すると、LP 印刷サービスに障害メッセージを送信できます。このプログラムは、標準プリンタインタフェースコード内の LPTELL シェル変数によって参照されます。プログラムは標準入力を取り込んで LP 印刷サービスに送信し、LP 印刷サービスは管理者にプリンタ障害を警告するメッセージを出します。標準入力が空であれば、lp.tell は警告を開始しません。lp.tell プログラムの例として、次のコメントの直後の標準プリンタインタフェースコードを確認してください。
# Here's where we set up the $LPTELL program to capture fault messages
特殊な終了コード 129 または lp.tell プログラムを使用すると、プリンタインタフェースプログラムはプリンタ自体を使用不可にする必要がありません。インタフェースプログラムは、プリンタを直接使用不可にできますが、その場合は障害警告メカニズムが無効になります。LP 印刷サービスがプリンタ障害を検出した場合にのみ警告が送信され、特殊終了コードと lp.tell プログラムはその主要検出ツールです。
LP 印刷サービスがいずれかの時点でファイルの印刷を中断しなければならない場合は、TERM 信号 (トラップ番号 15 と、kill(1) および signal(3B) のマニュアルページを参照) を使用してインタフェースプログラムを強制終了します。プリンタインタフェースプログラムが他の信号を受信しなくなると、LP 印刷サービスはその後の印刷要求は影響されないものとみなし、そのプリンタを使用し続けます。LP 印刷サービスは、要求を依頼したユーザーに、その要求が正常に終了しなかったことを通知します。
インタフェースが最初に呼び出されると、信号 HUP、INT、QUIT、PIPE (トラップ番号 1、2、3、13) は無視されます。標準インタフェースは、信号が適切な時期にトラップされるように、この動作を変更します。標準インタフェースはこれらの信号の受信をプリンタの問題を示す警告として解釈し、信号を受信すると障害警告を発します。
カスタマイズされたプリンタインタフェースプログラムを作成し、印刷サーバー上で標準プリンタインタフェースプログラムの代わりに使用できます。そのためには、lpadmin コマンドを使用して、プログラムを特定のプリンタの LP 印刷サービスに登録します。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
独自のプリンタインタフェースプログラムがあるかどうかに基づいて次の手順を選択します。
独自のプリンタインタフェースプログラムの有無 |
次の手順 |
---|---|
独自のプリンタインタフェースプログラムがないので作成する必要がある | |
すでに独自のプリンタインタフェースプログラムがある |
# cp /var/spool/lp/model/standard custom-interface
標準プリンタインタフェースプログラムのコピーを必要に応じて変更します。
「標準プリンタインタフェースプログラム」のプログラムの説明を参照して、何を変更する必要があるかを判断してください。
特定のプリンタ独自のプリンタインタフェースプログラムを設定します。
# lpadmin -p printer-name -i custom-interface
-p printer-name |
独自のプリンタインタフェースプログラムを使用するプリンタ名 |
-i custom-interface |
独自のプリンタインタフェースプログラム名 |
独自のプリンタインタフェースプログラムが LP 印刷サービスに登録され、ユーザーが印刷要求を出すと、そのプリンタに使用されます。
独自のプリンタインタフェースプログラムが /etc/lp/printers/printer-name/configuration ファイルに追加されたかどうかを確認します。
次の例では、プリンタ luna の独自のプリンタインタフェースプログラム custom を設定します。
# lpadmin -p luna -i custom
次の例では、システム venus がプリンタ asteroid 上で使用中の独自のプリンタインタフェースプログラムを設定します。
# lpadmin -p asteroid -e venus
フィルタは、LP 印刷サービスがプリンタで解釈できないタイプのファイルを印刷する必要があるたびに使用されます。新しい印刷フィルタを作成するのは簡単ではありません。通常は広範囲の経験が必要です。新しい印刷フィルタを定義するには、次の 2 つの手順があります。
印刷フィルタプログラムを作成する
印刷フィルタ定義を作成する
印刷フィルタは、必要に応じて簡単なものでも複雑なものでもかまいません。フィルタには、入力形式、出力形式、そのフィルタ内でコマンド行引数を処理する言語を提供する複雑なオプションが入っています。
PostScript 以外のプリンタを使用する場合は、必要に応じて印刷フィルタを作成して追加する必要があります。まず、印刷フィルタの機能と、フィルタプログラムが満たさなければならない要件を理解しておく必要があります。
SunOS 5.x 印刷サービスには、/usr/lib/lp/postscript ディレクトリにフィルタプログラムが組み込まれています。これらのフィルタは、宛先プリンタが PostScript 形式のデータを必要とするほとんどの PostScript 印刷の状況に対応します。印刷フィルタプログラムは、2 進の実行可能プログラムでなければなりません。
印刷フィルタには、高速フィルタと低速フィルタの 2 種類があります。
高速フィルタは、ファイルの印刷準備にあまり処理時間がかかりません。また、実行するときにはプリンタにアクセスしなければなりません。印刷障害を検出する印刷フィルタは、高速フィルタでなければなりません。PRINTER キーワードをフィルタオプションとして使用するフィルタは、高速フィルタとしてインストールしなければなりません。
低速フィルタは、ファイルの印刷準備に大量の処理時間がかかります。また、低速フィルタは実行するときにプリンタにアクセスする必要がありません。低速フィルタはバックグラウンドで実行されるので、プリンタと連結する必要がなく、低速フィルタを必要としない他のファイルを印刷できます。
LP 印刷サービスは、印刷フィルタを使用して、ある内容形式から別の内容形式にファイルを変換します。プリンタごとに、受け付けられるファイル内容形式を指定できます。ユーザーは印刷要求を出すときにファイル内容形式を指定し、LP 印刷サービスはその内容形式のファイルを印刷できるプリンタを探します。多くのアプリケーションは各種プリンタに合わせてファイルを生成できるので、通常はこれで十分です。ただし、アプリケーションによっては、利用できるプリンタ上で印刷できないファイルを生成するものがあります。
LP 印刷サービスは、プリンタで直接受け付けられない形式のファイルの印刷要求を受信するたびに、印刷要求の内容形式を利用できる (または指定された) プリンタの内容形式と一致させようとします。一致すると、そのファイルはフィルタをかけなくてもプリンタに直接送信できます。一致する形式が見つからない場合や、内容形式でフィルタを使用するように指定されている場合は、LP 印刷サービスはファイルの内容形式を利用できるフィルタの入力内容形式と一致させ、フィルタの出力形式をプリンタの内容形式と一致させようとします。適切なフィルタが見つかると、印刷要求はフィルタを通して渡されます。
印刷フィルタは、特殊モードを処理し特殊ページの印刷を要求します。特殊印刷モードは、カスタマイズされたフィルタが必要な印刷要求の特性を印刷するために必要です。フィルタは、次の特性を処理します。
プリンタタイプ
文字ピッチ
行ピッチ
ページ長
ページ幅
印刷ページ数
文字セット
フォーム名
部数
LP 印刷サービスは、これらの特性にデフォルト設定を提供します。ただし、印刷フィルタの方が一部の特性を効率よく処理できます。たとえば、プリンタによっては、LP 印刷サービスより効率よく複数のコピーを処理できるものがあり、その場合は複数コピーのページ制御用フィルタを提供できます。
各プリンタは、独自の方法でプリンタ障害を検出し、障害信号を LP 印刷サービスに送信します。LP 印刷サービスは、印刷中にハングアップ (キャリア喪失) と過剰な遅延の有無をチェックするだけです。
プリンタによっては、優れた障害処理能力を持ち、障害の原因を記述するメッセージを送信できるものがあります。また、キャリア信号の喪失やデータフローのシャットオフを示すものとは異なる信号を使用して障害を示すプリンタもあります。これらの付加的なプリンタ障害情報を解釈するには、フィルタが必要です。
また、フィルタは印刷要求を保留し、プリンタ障害がクリアされるまで待ってから印刷を再開します。この機能を使用すると、中断された印刷要求全体を印刷し直す必要がありません。プリンタに使用される制御シーケンスを認識するフィルタだけが、ファイルの改ページ位置を判別できます。したがって、その種のフィルタ以外は、障害がクリアされた後で印刷を再開する必要があるファイル内の位置を検出できません。
印刷フィルタがメッセージを生成すると、そのメッセージは LP 印刷サービスによって処理され、警告が使用可能になっている場合は、システム管理者に警告が送信されます。「障害の通知の設定」 を参照してください。
印刷フィルタは単純なものでも複雑なものでもかまいませんが、次の要件を満たさなければなりません。
フィルタは、標準入力からファイルの内容を取得して、変換後のファイルを標準出力に送信しなければなりません。
外部ファイルを参照するプログラムはフィルタとして使用できません。一般にユーザーは troff、nroff などのワープロプログラムをフィルタとして使用しがちです。LP 印刷サービスは、フィルタプログラムから「組み込みファイル」と呼ばれる他のファイルへの参照を認識しません。troff と nroff はファイルを組み込めるので、フィルタとして使用すると失敗することがあります。プログラムが処理を完了するために他のファイルを必要とする場合は、フィルタとして使用しないでください。
フィルタは、一般にユーザーがアクセスできないファイルに依存しないでください。ユーザーが直接実行するときにフィルタが失敗すると、LP 印刷サービスで実行しても失敗します。
低速フィルタは、ファイル内のエラーに関するメッセージを標準エラーに送信しますが、高速フィルタは送信しません。低速フィルタからのエラーメッセージは収集され、印刷要求を出したユーザーに送信されます。
低速フィルタが信号を受信したために終了すると、印刷要求が停止され、その要求を出したユーザーに通知されます。同様に、低速フィルタが 0 以外の終了コードを返して終了すると、印刷要求が停止され、ユーザーに通知されます。高速フィルタからの終了コードは、異なる方法で処理されます。
フィルタにプリンタ障害を検出させたい場合は、次の要件も満たしてください。
フィルタは終了する前にできるだけ障害がクリアされるまで待つ必要があります。また、障害がクリアされたら、印刷を停止したページの先頭から印刷を再開してください。継続機能を使用したくない場合は、LP 印刷サービスは管理者に警告する前にフィルタを停止します。
フィルタは、障害が認識されたらすぐにプリンタ障害メッセージを標準エラーに送信する必要があります。終了する必要はなく、障害がクリアされるまで待つことができます。
フィルタは、ファイル内のエラーに関するメッセージを標準エラーに送信してはいけません。これらのメッセージは、ユーザーが読み込める標準出力に含める必要があります。
フィルタは、ファイルの印刷が終了すると (ファイル内のエラーによって正常に印刷できなかった場合も) 終了コード 0 を返して終了する必要があります。
フィルタは、プリンタ障害によって印刷要求を終了できなかった場合にのみ、0 以外の終了コードを返して終了する必要があります。
フィルタをフィルタテーブルに追加する場合は、高速フィルタとして追加しなければなりません。
印刷フィルタ定義は、フィルタ、実行する印刷フィルタプログラム、実行する変換の種類などを LP 印刷サービスに指示します。/etc/lp/fd ディレクトリには、一連のフィルタ記述子ファイルが組み込まれています。これらのファイルは、フィルタの特性 (高速または低速フィルタなど) を記述し、フィルタプログラム (/usr/lib/lp/postscript/postdaisy など) を指します。
新しい印刷フィルタを定義するときには、フィルタプログラムを作成するだけでなく、印刷フィルタ定義を作成しなければなりません。印刷フィルタ定義には、LP 印刷サービスが使用する次の情報が入っています。
実行するフィルタプログラム名
受け付ける入力タイプ
生成する出力タイプ
ジョブを送信できるプリンタタイプ
ジョブを送信できる特定のプリンタ名
フィルタタイプ (高速または低速)
オプション
lpfilter コマンドへの直接入力として特性を入力できます。また、フィルタの特性を指定するファイルを作成し、ファイル名を lpfilter コマンドへの入力として使用することもできます。この種のファイルは「フィルタ記述子ファイル」と呼ばれ、/etc/lp/fd ディレクトリに配置してください。これらのファイルはフィルタそのものではなく、フィルタを指すものです。
情報をファイルに格納するかコマンド行に直接入力するかに関係なく、次の形式を使用してください。
Command: command-pathname [options] Input types: input-type-list Output types: output-type-list Printer types: printer-type-list Printers: printer-list Filter type: fast または slow Options: template-list
Options 以外のフィルタ特性に複数の定義 (つまり複数行) を与えると、2 番目の定義のみが印刷サービスに使用されます。
情報はどんな順序で配置してもかまいません。また、すべての情報が必要とは限りません。値を指定しなければ、表 44-5 の値がデフォルトで割り当てられます。デフォルト値はあまり便利ではないので、明示的な値を指定するようにしてください。
表 44-5 lpfilter 引数のデフォルト値
項目 |
デフォルト |
---|---|
入力タイプ |
任意 |
出力タイプ |
任意 |
プリンタタイプ |
任意 |
プリンタ |
任意 |
フィルタタイプ |
低速 |
フィルタプログラムのフルパスを使用してください。プログラムが必ず必要とする固定オプションがある場合は、それらをこのコマンドに含めます。
印刷フィルタが処理できるファイル内容形式のリストです。LP 印刷サービスには入力タイプ数の制限はありませんが、ほとんどのフィルタは 1 つのタイプしか受け付けません。いくつかのファイルタイプは、フィルタで処理できる程度に類似しています。14 文字以内の英数字とダッシュを使用した名前を指定できます。入力タイプ名の一部として下線 (_) は使用できません。
LP 印刷サービスは、一貫した命名規則に合致するように、これらの名前を使用してフィルタをファイルタイプと一致させます。たとえば、複数のフィルタが同じ入力タイプを受け付ける場合は、各フィルタ用に指定するときに、その入力タイプに同じ名前を使用します。ユーザーには、ファイルの印刷を依頼するときにファイルタイプの識別方法がわかるように、これらの名前を通知してください。
出力タイプは、フィルタが出力として生成できるファイルタイプのリストです。入力タイプごとに、フィルタは 1 つずつ出力タイプを生成します。ただし、出力タイプはジョブごとに異なることがあります。出力タイプ名は、14 文字以内の英数字とダッシュ (-) です。
出力タイプ名は、利用できる (ローカルまたはリモート) プリンタのタイプと一致するか、他のフィルタで処理される入力タイプと一致しなければなりません。LP 印刷サービスは、ファイルを変換するために異なるフィルタを複数回かける必要があることがわかると、フィルタをシェルパイプラインにグループ化します。このように複雑な処理はほとんど必要ありませんが、LP 印刷サービスではこの処理を実行できます。ユーザーが印刷したいあらゆるファイルを入力タイプにするフィルタの集合を探して、各ファイルをプリンタで処理できるファイルタイプに直接変換してください。
プリンタタイプは、印刷フィルタがファイルを変換できるプリンタタイプのリストです。ほとんどのプリンタとフィルタの場合、これは出力タイプのリストと同じなので、フィルタ定義のこの部分はブランクにしておいてかまいません。しかし、別のタイプを使用することもできます。たとえば、初期化には 1 つのプリンタタイプを使用するプリンタでも、複数のファイル内容形式を認識できるものがあります。実際には、このプリンタには、各種ファイルタイプを、処理できるファイルタイプに変換する内部フィルタが付いています。したがって、1 つのフィルタは、プリンタで処理できるファイルタイプに合った複数の出力タイプのいずれかを生成できます。印刷フィルタには、そのプリンタタイプで機能することを示すマークを付ける必要があります。
もう 1 つの例として、同じファイルタイプを受け付けるものとして表示される 2 つのモデルのプリンタを使用できます。ただし、内部に若干違いがあるので、一方のプリンタが生成する結果と異なります。それらのプリンタには、A と B など、異なるプリンタタイプであることを示すラベルを付けます。この場合、B はズレがある方のプリンタです。タイプ B のプリンタで生成されるズレを考慮してファイルを調整するフィルタを作成します。このフィルタはこの種のプリンタタイプにのみ必要なので、タイプ B プリンタでのみ機能するものとして指定します。
一般に、印刷フィルタはその出力を受け付けるどのプリンタでも機能するはずなので、通常はフィルタ定義のこの部分をスキップできます。
ただし、プリンタによっては、フィルタが生成する出力に適したものと適さないものがあります。たとえば、1 台のプリンタを高速出力専用にして、フィルタを通す必要がないファイルのみをそのプリンタに送信できます。同じタイプの他のプリンタは、印刷前に広範囲にフィルタを通す必要があるファイルに使用できます。
LP 印刷サービスは、「フィルタのタイプ」で説明しているように、高速フィルタと低速フィルタを認識します。
印刷モードで (lp コマンドの -y オプションを使用して) 呼び出される低速フィルタは、印刷要求が出されたシステム上で実行しなければなりません。LP 印刷サービスはモード値を印刷サーバーに渡せません。ただし、ファイル内容形式 (lp コマンドの -T オプションの後で指定) を印刷サーバー上の内容形式と一致させることはできます。したがって、印刷サーバー上で特殊モードを有効にしたい場合は、LP 印刷サービスが入力タイプと出力タイプを一致することができる内容形式を指定しなければなりません。
オプションは、各種の情報をフィルタコマンドのコマンド行引数にどのように変換するかを指定します。この情報には、ユーザーからの (印刷要求を伴う) 指定、プリンタ定義、要求の処理に使用されるフィルタによって実装される仕様などを含めることができます。
印刷フィルタオプションの定義には 13 個の情報源があり、それぞれが「キーワード」で表されています。各オプションは「テンプレート」内で定義されます。テンプレートとは、フィルタのいずれかの特性値に基づいてフィルタコマンドに渡されるオプションを定義する、フィルタ定義内のステートメントです。
フィルタ定義で指定するオプションには、13 個のキーワードを使用しなくても、すべて使用しても、そのサブセットを使用してもかまいません。また、完全なフィルタ定義に複数の定義が必要な場合は、1 つのキーワードを複数回指定することもできます。印刷フィルタ定義における Options を定義するための 13 個のキーワードについては、表 44-6 を参照してください。
表 44-6 印刷フィルタオプションのキーワード
キーワード |
考えられるパターン |
例 |
|
---|---|---|---|
内容形式 (入力) |
INPUT |
内容形式 |
troff |
内容形式 (出力) |
OUTPUT |
内容形式 |
postscript、impress |
プリンタタイプ |
TERM |
プリンタタイプ |
att495 |
プリンタ名 |
PRINTER |
プリンタ名 |
lp1 |
文字ピッチ |
CPI |
四捨五入された 10 進数 |
10 |
行ピッチ |
LPI |
四捨五入された 10 進数 |
6 |
ページ長 |
LENGTH |
四捨五入された 10 進数 |
66 |
ページ幅 |
WIDTH |
四捨五入された 10 進数 |
80 |
印刷ページ数 |
PAGES |
ページリスト |
1-5,13-20 |
文字セット |
CHARSET |
文字セット |
finnish |
フォーム名 |
FORM |
フォーム名 |
invoice2 |
部数 |
COPIES |
整数 |
3 |
MODES |
モード |
landscape |
印刷フィルタ定義には、複数のテンプレートを含めることができます。複数のテンプレートを指定する場合は、1 行にコンマで区切って入力するか、先頭に Options: を付けて複数行に入力します。
テンプレートの形式は次のとおりです。
keywordpattern = replacement
keyword は、フィルタの特定の特性に関して登録されたオプションのタイプを識別します。
pattern は、キーワードの特定のオプションです。
replacement は、キーワードが指定した値のときに発生する動作です。
特定のフィルタのオプションを定義する方法を示す例として、印刷サービススケジューラを使って次の条件でフィルタに印刷要求を割り当てたいものと仮定します。
フィルタで生成される OUTPUT のタイプが impress の場合は、フィルタに -I オプションを渡す。
フィルタで生成される OUTPUT のタイプが postscript の場合は、フィルタに -P オプションを渡す。
上記の条件を指定するには、lpfilter コマンドのオプションとして次のテンプレートを与えます。
Options: OUTPUT impress=-I, OUTPUT postscript=-P
Options 行が長くなりすぎる場合は、次のように各テンプレートを別々の行に入れます。
Options: OUTPUT impress=-I Options: OUTPUT postscript=-P
どちらのテンプレートでも、keyword は OUTPUT として定義されています。第 1 のテンプレートでは、パターンは impress で、「replacement」の値は -I です。第 2 のテンプレートでは、「pattern」の値は postscript で、「replacement」の値は -P です。
各種テンプレート (つまり、各キーワードの pattern 引数と replacement 引数) に与える値を見つけるには、次のことに注意する必要があります。
INPUT テンプレートの値は、フィルタによる変換が必要なファイル内容形式からとっています。
OUTPUT テンプレートの値は、フィルタが生成すべき出力タイプからとっています。
TERM テンプレートの値はプリンタタイプです。
PRINTER テンプレートの値は、最終出力を印刷するプリンタ名です。
CPI、LPI、LENGTH、WIDTH の各テンプレートの値は、ユーザーの印刷要求、使用するフォーム、またはプリンタのデフォルト値からとっています。
PAGES テンプレートの値は、印刷すべきページのリストです。通常、これはコンマで区切ったページ範囲のリストです。各ページ範囲は、ダッシュで区切った 1 対の数値、または単一の数字からなります (たとえば、1-5,6,8,10 は 1 ページから 5 ページまでと、6 ページ、8 ページ、10 ページを示します)。ただし、印刷要求に -P オプションで値を与えると、印刷要求は変更されずに渡されます。
CHARSET テンプレートの値は、使用する文字セット名です。
FORM テンプレートの値は、lp コマンド (印刷要求を出すのに使用するコマンド) の -f オプションで要求したフォーム名です。
COPIES テンプレートの値は、ファイルの印刷部数です。フィルタがこのテンプレートを使用する場合、この「1 部」にはフィルタによって生成される複数のコピーが含まれるので、LP 印刷サービスはフィルタがかけられたファイルの印刷部数から 1 を引きます。
MODES テンプレートの値は、lp コマンドの -y オプションからとっています。ユーザーは複数の -y オプションを指定できるので、MODES テンプレートは複数の値をとることがあります。値はユーザーが与えた順に左から右に適用されます。
テンプレートの replacement 部は、テンプレートの値をフィルタプログラムに与える方法を示します。通常はリテラルオプションですが、値の位置を示すプレースホルダのアスタリスク (*) が付いていることがあります。pattern と replacement には、ユーザー入力オプションからフィルタオプションへの複雑な変換を行うために、ed(1) の正規表現の構文を使用することもできます。ed(1) の正規表現の構文はすべて使用できます。たとえば、¥( ... ¥) や ¥n 構成を使用すると、pattern の各部を抽出して replacement にコピーできます。また、& を使用すると、pattern 全体を replacement にコピーできます。
pattern または replacement にコンマまたは等号 (=) を含める場合は、その前にバックスラッシュ (¥) を付けてください。これらの文字の前にバックスラッシュが付いていると、pattern または replacement が使用されるときに削除されます。
印刷サーバーにスーパーユーザーまたは lp としてログインします。
印刷フィルタプログラムを作成します。
印刷フィルタプログラムの概要については、「印刷フィルタプログラムの作成」/usr/lib/lp/postscript ディレクトリに入っています。作成したプログラムは、選択したディレクトリ内の /usr/lib/lp の下に入れる必要があります。
印刷フィルタ定義を作成します。
印刷フィルタ定義の概要については、「印刷フィルタ定義の作成」を参照してください。印刷フィルタ定義はテキストファイルに保存する必要があります。使用しやすいように、通常、フィルタ定義は /etc/lp/fd ディレクトリに入っており、接尾辞 .fd で識別されます。
印刷フィルタを印刷サーバーに追加します。
詳細は、「印刷フィルタを追加する方法」を参照してください。
次の例は、N37 または Nlp を simple に変換する印刷フィルタ定義を示します。
Input types: N37, Nlp, simple Output types: simple Command: /usr/bin/col Options: MODES expand = -x Options: INPUT simple = -p -f
次の例で、印刷フィルタプログラム名は col です。新しい印刷フィルタを印刷サーバーに追加すると、ユーザーの印刷要求は次のように処理されます。
ユーザーが次のコマンドを入力した場合
$ lp -y expand report.doc
印刷プログラムは次の引数を使用して実行され、ファイルが変換されます。
/usr/bin/col -x -p -f
ユーザーが次のコマンドを入力した場合
$ lp -T N37 -y expand report.doc
印刷プログラムは次の引数を使用して実行され、ファイルが変換されます。
/usr/bin/col -x
次の例は、troff から PostScript に変換する印刷フィルタ定義を示します。
Input types: troff Output types: postscript Printer types: PS Filter type: slow Command: /usr/lib/lp/postscript/dpost Options: LENGTH * = -l* Options: MODES port = -pp, MODES land = -pl Options: MODES group ¥=¥([1-9]¥) = -n¥l
次の例で、フィルタプログラム名は dpost です。このプログラムは入力タイプ troff をとり、postscript 出力を生成し、タイプ PS (PostScript) のプリンタに機能します。ユーザーは、用紙方向を縦モードにするか横モードにするかを尋ねるプロンプトが表示されたときに、それぞれの省略形 port または land を指定するだけですみます。これらのオプションは LP 印刷サービスに固有ではないので、ユーザーは lp コマンドの -y オプションを使用して指定しなければなりません。
新しい印刷フィルタを印刷サーバーに追加すると、印刷要求は次のように処理されます。
ユーザーが次のコマンドを入力し、横方向、ページ長 60 行で、troff ファイルタイプを PostScript プリンタ (タイプ PS) で印刷するように要求した場合
$ lp -T troff -o length=60 -y land -d luna ch1.doc
印刷フィルタプログラム dpost は、次の引数を使用して実行され、ファイルが変換されます。
/usr/lib/lp/postscript/dpost -l60 -pl luna ch1.doc
ユーザーが次のコマンドを入力した場合
$ lp -T troff -y group=4 -d luna ch1.doc
次の引数が指定された印刷フィルタプログラム dpost コマンドは、ファイルを変換します。
/usr/lib/lp/postscript/dpost -n4
新しいフォームを提供したい場合は、lpforms コマンドへの入力として 9 個の必須特性 (ページ長とページ幅など) に関する情報を入力し、その特性を定義しなければなりません。LP 印刷サービスは、この情報を次の 2 つの目的に使用します。
フォーム上に正しく印刷されるようにプリンタを初期化する。
フォームの処理方法に関する留意事項をシステム管理者に送信する。
フォーム名は、14 文字以内の英数字と下線であれば、任意に選択して使用できます。情報は次の形式でなければなりません。
Page length: scaled number Page width: scaled number Number of pages: integer Line pitch: scaled number Character pitch: scaled number Character set choice: character-set-name [,mandatory] Ribbon color: ribbon-color Comment: informal notes about the form Alignment pattern: [content-type] alignment pattern
省略可能な句、[,mandatory] は、ユーザーがフォームの文字セット選択を無効にできないことを意味します。content-type は位置揃えパターンを使用して指定できますが省略可能です。この属性を指定すると、印刷サービスは必要に応じて使用し、ファイルにフィルタをかけて印刷する方法を決定します。
2 つの例外がありますが、情報は任意の順序で指定できます。例外は、Alignment pattern (位置揃えパターン) (必ず最後に配置しなければなりません) と comment (コメント) (必ず Comment: プロンプトの行に続かなければなりません) です。コメントにキー句 (Page length、Page width など) で始まる行が含まれている場合は、キー句が行頭にならないように、その行を > 文字で始めます。先頭の > 文字は、コメントから除去されて表示されません。
すべての情報を与えなければならないわけではありません。表 44-7 の項目の値を指定しないときは、デフォルト値が割り当てられます。lpforms コマンドを実行する前に、新しいフォームに関して次の情報を収集してください。
表 44-7 フォームのデフォルト値
項目 |
デフォルト |
説明 |
---|---|---|
ページ長 |
66 行 |
フォームの長さ、または複数ページのフォームの場合は各ページの長さ。この情報は、行数でもインチ単位やセンチメートル単位でもかまわない |
ページ幅 |
80 列 |
文字数、インチ数、またはセンチメートル数によるフォームの幅 |
ページ数 |
1 |
複数ページのフォームのページ数。LP 印刷サービスは、この数値と印刷フィルタ (利用できる場合) を使用して、位置揃えパターンを 1 つのフォームの長さに制限する。「位置揃えパターン」の説明を参照 |
行ピッチ |
1 インチあたり 6 行 |
フォーム上の行間隔。これは「リーディング」とも呼ばれる。2 行間の間隔、つまりベースラインからベースラインまでの間隔を 1 インチまたは 1 センチあたりの行数で表す |
文字ピッチ |
1 インチあたり 10 文字 |
フォームに表示される文字間隔。文字の間隔を 1 インチまたは 1 センチあたりの文字数で表す |
文字セット選択肢 |
任意 |
このフォームに使用しなければならない文字セット、印字ホイール、またはフォントカートリッジ。ユーザーは、このフォームを使用するときに独自の印刷要求に別の文字セットを選択できる。また、単一の文字セットのみを使用するように指示できる |
リボンの色 |
任意 |
フォームを常に特定のカラーリボンで印刷しなければならない場合、LP 印刷サービスはどの色を使用すべきかを示す装着警告メッセージを表示できる |
コメント |
(デフォルトなし) |
ユーザーがフォームを理解する上で参考になる任意の情報。たとえば、フォーム名、そのバージョン、用途、または使用上の制限を示すことができる |
(デフォルトなし) |
LP 印刷サービスが 1 枚のブランクフォームを埋めるために使用するサンプルファイル。フォームを装着するときに、このパターンを印刷して正しく位置揃えすることができる。また、印刷サービスに印刷方法が認識されるように、このパターンの内容形式を定義することもできる |
LP 印刷サービスは、位置揃えパターン内の重要な情報にマスクをかけようとしません。小切手を位置揃えするときなど、サンプルフォームに重要な情報を印刷したくない場合は、該当するデータにマスクをかける必要があります。LP 印刷サービスは、スーパーユーザーまたは lp としてログインしたユーザー以外は読み取れないように、位置揃えパターンを安全な場所に格納します。
フォーム情報を収集し終わったら、フォームを lpforms コマンドに入力します。lpforms コマンドに入力する前にこの情報を編集できるように、まず、この情報を別のファイルに記録してください。そうすれば、プロンプトの後で個々の情報を入力しなくても、そのファイルを入力として使用できます。
印刷サーバー上でスーパーユーザーまたは lp としてログインします。
フォーム定義ファイルを作成します。
印刷フォームの作成方法の概要については、「新しいプリンタフォームの作成」を参照してください。プリンタ定義はテキストファイルに保存してください。
lpadmin コマンドを使用して、フォームを LP 印刷サービスに追加します。
# lpadmin -p printer-name -M -f form-name
フォームを印刷サーバーに追加します。
手順については、「フォームを追加する方法」を参照してください。
この章では、LP 印刷サービスの内容説明を提供します。
印刷管理作業の手順については、次の章を参照してください。
「LP 印刷サービス」とは、ユーザーが作業を続けながらファイルを印刷できるようにするソフトウェアユーティリティの集合です。当初、印刷サービスは LP スプーラと呼ばれていました (LP はラインプリンタを意味しますが、現在ではレーザプリンタなど、他の多数のプリンタも含まれています。スプール (spool) は、system peripheral operation off-line の頭文字です)。
印刷サービスは、LP 印刷サービスソフトウェア、システム管理者が提供する印刷フィルタ、ハードウェア (プリンタ、システム、およびネットワーク接続) からなっています。
この節では、LP 印刷サービスのディレクトリ構造、ファイル、ログ、およびコマンドについて説明します。
LP 印刷サービスのファイルは、表 45-1 のように 7 つのディレクトリに分散されています。
表 45-1 LP 印刷サービスのディレクトリ
ディレクトリ |
内容 |
---|---|
/usr/bin |
LP 印刷サービスのユーザーコマンド |
/etc/lp |
LP 構成ファイルの階層 |
/usr/share/lib |
terminfo データベースディレクトリ |
/usr/sbin |
LP 印刷サービスの管理コマンド |
/usr/lib/lp |
LP デーモン。バイナリファイルと PostScript フィルタのディレクトリ。model ディレクトリ (標準プリンタインタフェースプログラムが入っている) |
/var/lp/logs |
LP 動作のログ: lpsched.n - lpsched からのメッセージ。 requests.n - 完了した印刷要求に関する情報 |
/var/spool/lp |
ファイルが印刷待ち行列に入れられるスプーリングディレクトリ |
スケジューラは、表 45-2 のように、/etc/lp ディレクトリに入っている LP 構成ファイルに構成情報を格納します。
表 45-2 の構成ファイルはプライベートインタフェースで、将来のリリースでは変更される可能性があります。現在の場所にあるファイルに依存する、または現在使用している形式のデータに依存するソフトウェアを構築しないようにしてください。
ファイル |
タイプ |
説明 |
---|---|---|
classes |
ディレクトリ |
lpadmin -c コマンドで与えたクラスを識別するファイル |
fd |
ディレクトリ |
既存のフィルタの記述 |
filter.table |
ファイル |
印刷フィルタ照合テーブル |
forms |
ディレクトリ |
各フォームのファイルを格納する場所。最初は、このディレクトリは空になっている |
interfaces |
ディレクトリ |
プリンタインタフェースプログラムファイル |
logs |
/var/lp/logs へのリンク |
印刷動作のログファイル |
model |
/usr/lib/lp/model へのリンク |
標準プリンタインタフェースプログラム |
printers |
ディレクトリ |
各ローカルプリンタのディレクトリ。各ディレクトリには、個々のプリンタの構成情報と警告ファイルが入っている |
pwheels |
ディレクトリ |
印字ホイールまたはカートリッジファイル |
これらの構成ファイルは、SunOS 4.1 の /etc/printcap ファイルに似た機能を提供します。
これらのファイルの内容を確認できますが、直接編集しないでください。代わりに、lpadmin(1M) コマンドを使用して構成を変更します。変更内容は /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 ディレクトリには、表 45-3 のように LP 印刷サービスに使用されるデーモンとファイルが入っています。
表 45-3 /usr/lib/lp ディレクトリの内容
ファイル |
タイプ |
説明 |
---|---|---|
bin |
ディレクトリ |
印刷警告、低速フィルタ、待ち行列管理プログラムを生成するファイルが入っている |
lpsched |
デーモン |
LP 印刷要求のスケジューリングを管理する |
model |
ディレクトリ |
標準プリンタインタフェースプログラムが入っている |
postscript |
ディレクトリ |
SunOS 5.x の LP 印刷サービスから提供されるすべての PostScript フィルタプログラムが入っている。これらのフィルタには、フィルタの特性とその格納場所を LP 印刷サービスに指示する /etc/lp/fd ディレクトリ内の記述子ファイルが付いている |
LP 印刷サービスは、次の 2 組のログファイルを管理します。
/var/spool/lp - 印刷待ち行列に入っている現在の待ち行列のリスト
/var/lp/logs/requests - 進行中の印刷要求の履歴
各システムのスケジューラは、ディレクトリ /var/spool/lp/tmp/system と /var/spool/lp/requests/system 内で印刷要求のログを保管します。各印刷要求には、(ディレクトリごとに 1 つずつ) 情報が入った 2 つのファイルがあります。/var/spool/lp/requests/system ディレクトリ内の情報には、スーパーユーザーまたは lp しかアクセスできません。/var/spool/lp/tmp/system 内の情報には、その要求を出したユーザー、スーパーユーザー、または lp しかアクセスできません。
次の例は、/var/spool/lp/tmp/terra ディレクトリの内容を示しています。
$ ls /var/spool/lp/tmp/terra 20-0 21-0 terra$ cat 21-0 C 1 D slw2 F /etc/default/login P 20 t simple U tamiro s 0x1000
これらのファイルは、印刷要求が待ち行列に入っている限り、そのディレクトリ内に残っています。要求が完了すると、ファイル内の情報は組み合わされ、ファイル /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 #
接尾辞 .1 と .2 が付いているファイルは、前日のログのコピーです。毎日、lp cron ジョブは lpsched ログファイルと requests ログファイルを消去して、2 日分のコピーを保管します。requests ログを消去する cron ジョブを変更するためのヒントについては、「crontab ファイルの作成と編集」を参照してください。
問題の解決に最も重要なのは、ローカル印刷要求に関する情報が入っている lpsched ログです。
requests ログには、完了して印刷待ち行列から消去された印刷要求に関する情報が入っています。印刷要求が終了すると、/var/spool/lp ログファイル内の情報が組み合わされ、/var/lp/logs/requests ログに追加されます。
requests ログの構造は単純なので、共通の UNIX シェルコマンドを使用してデータを抽出できます。要求は、出力された順番に要求 ID を示す行で区切って表示されます。区切り行の下の各行には、その行に入っている情報の種類を識別する 1 文字が付いています。各文字は、空白文字 1 つでデータから区切られます。
次の例は、requests ログの内容を示しています。
# pwd /var/lp/logs # tail requests.2 = slw2-20, uid 200, gid 200, size 5123, Tue Jun 17 10:16:10 MDT 1997 z slw2 C 1 D slw2 F /etc/motd P 20 t simple U irving s 0x0100 #
表 45-4 は、文字コードとそれに対応する LP requests ログ内の行を示しています。
表 45-4 LP requests ログ内の文字コード
文字 |
行の内容 |
---|---|
= |
区切り行。ユーザーの要求 ID、ユーザー ID (UID)、グループ ID (GID)、元の (フィルタを通す前の) ファイルサイズ、および要求が待ち行列に入れられた時刻が入っている |
C |
印刷部数 |
D |
出力先のプリンタかクラス、または any |
F |
印刷されたファイル名。この行は印刷されたファイルごとに区切られ、各ファイルは表示された順序で印刷される |
f |
使用されたフォーム名 |
H |
特殊処理 resume、hold、または immediate |
N |
印刷要求が正常に完了したときに使用された警告のタイプ。ユーザーが電子メールで通知を受けた場合は M タイプ、端末へのメッセージで通知を受けた場合は W タイプ |
O |
プリンタ依存の -o オプション (nobanner など) |
P |
印刷要求の優先順位 |
p |
印刷されたページのリスト |
r |
ユーザーがファイルの「raw」処理を要求した場合 (lp コマンドの -r オプション) に含まれる 1 文字の行 |
S |
使用された文字セット、印字ホイール、またはカートリッジ |
s |
16 進数形式の各ビットの組み合わせで表される要求の結果。印刷サービスの内部では複数のビットが使用される。各ビットとその意味については表 45-5 を参照 |
T |
バナーページに印刷されるタイトル |
t |
ファイル内で見つかった内容形式 |
U |
印刷要求を出したユーザー名 |
x |
印刷要求に使用された低速フィルタ |
Y |
要求の印刷に使用された印刷フィルタの特殊モードのリスト |
z |
要求に使用されたプリンタ。要求がプリンタまたはプリンタクラスの待ち行列に入れられた場合や、要求が別の出力先に移動された場合は、このプリンタは出力先 (D 行) とは異なる |
表 45-5 は、LP requests ログ内の結果コードとその説明です。
表 45-5 LP requests ログ内の結果コード
結果コード |
説明 |
---|---|
0x0001 |
要求は保留され再開を待機中 |
0x0002 |
低速フィルタを実行中 |
0x0004 |
低速フィルタを正常に完了 |
0x0008 |
要求はプリンタ上にある |
0x0010 |
印刷を正常に完了 |
0x0020 |
要求は保留されユーザーによる変更を待機中 |
0x0040 |
要求は取り消し済み |
0x0080 |
要求は次に印刷される |
0x0100 |
フィルタ処理または印刷要求に失敗 |
0x0200 |
要求はリモートプリンタに転送中 (現在は使用されない) |
0x0400 |
ユーザーに通知 |
0x0800 |
通知が動作中 |
0x1000 |
リモートシステムが要求を受け付け済み (現在は使用されない) |
0x2000 |
管理者が要求を保留した |
0x4000 |
プリンタのフィルタを変更しなければならなかった |
0x8000 |
要求は一時的に停止された |
印刷待ち行列に入れられたファイルは、印刷されるまで /var/spool/lp ディレクトリに格納されますが、それがわずか数秒の場合があります。表 45-6 は、/var/spool/lp ディレクトリの内容を示します。
表 45-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 |
ディレクトリ |
印刷要求が印刷されるまでログが記録される構成済みの各プリンタのディレクトリ。既存の印刷要求を変更した場合も、このログに記録される |
表 45-7 は、頻繁に使用する LP 印刷サービスのコマンドを示します。1M コマンドを使用するには、スーパーユーザーまたは lp にならなければなりません。
表 45-7 LP 印刷サービスコマンド早見表
コマンド |
機能 |
---|---|
enable(1) |
プリンタを使用可能にする |
cancel(1) |
印刷要求を取り消す |
lp(1) |
1 つ以上のファイルをプリンタに送る |
lpstat(1) |
LP 印刷サービスの状態を出力する |
disable(1) |
1 台以上のプリンタを無効にする |
accept(1M) |
印刷要求を特定の出力先の待ち行列に入れられるようにする |
reject(1M) |
印刷要求が特定の出力先の待ち行列に入れられないようにする |
lpadmin(1M) |
プリンタの構成を設定または変更する |
lpfilter(1M) |
フィルタの定義を設定または変更する |
lpforms(1M) |
あらかじめ印刷されたフォームを設定または変更する |
lpadmin(1M) |
フォームを取り付ける |
lpmove(1M) |
ある出力先から別の出力先に出力要求を移動する |
lpsched(1M) |
LP 印刷サービススケジューラを起動する |
lpshut(1M) |
LP 印刷サービススケジューラを停止する |
lpusers(1M) |
デフォルトの優先順位と、LP 印刷サービスのユーザーが要求できる優先順位の制限を設定または変更する |
LP 印刷サービスは、次の機能を実行します。
ファイルを管理してローカル印刷要求をスケジュールする。
ネットワーク要求を受け取り、スケジュールする。
ファイルが正しく印刷されるように必要に応じてフィルタを通す。
プリンタとインタフェースするプログラムを起動する。
ジョブの状態を追跡する。
プリンタに取り付けられたフォームを追跡する。
現在装着されている印字ホイールを追跡する。
新しいフォームや別の印字ホイールを取り付け、装着するよう警告を発する。
印刷問題に関する警告を発する。
ディレクトリ構造とコマンドについては、「LP 印刷サービスの構造」を参照してください。
LP 印刷サービスには、lpsched というスケジューラデーモンが組み込まれています。スケジューラデーモンは、プリンタの設定と構成に関する情報を使用して LP システムファイルを更新します。
また、lpsched デーモンは、ユーザーが要求をアプリケーションから出すかコマンド行から出すかに関係なく、図 45-1 のように、印刷サーバー上のすべてのローカル印刷要求をスケジュールします。さらに、スケジューラはプリンタとフィルタの状態を追跡します。プリンタが要求を印刷し終わると、印刷サーバー上の待ち行列に残っているものがあれば、スケジューラは次の要求をスケジュールします。
各印刷サーバーは、LP スケジューラを 1 つだけ実行していなければなりません。スケジューラは、システムのブート時に (または実行レベル 2 を入力すると)、制御スクリプト /etc/rc2.d/S80lp によって起動されます。システムを再起動しなくても、/usr/lib/lp/lpshut コマンドを使用してスケジューラを停止し、lpsched コマンドを使用して再起動できます。各システムのスケジューラは、lp コマンドによってシステムに出された要求を管理します。
各印刷クライアントは、ネットワーク経由で直接、印刷サーバーと通信します。通信は、要求コマンド (lp、lpstat、cancel、lpr、lpq、または lprm) と印刷サーバー上の印刷サービス間で行われます。これによって、クライアント専用システムにおける印刷システムのオーバーヘッドが軽減され、その結果、拡張性、性能、およびデータの正確性が向上します。
印刷サーバーは、現在、インターネットサービスデーモン (inetd) で印刷要求を待機します。ネットワークから印刷サービスへ要求があると、inetd は「プロトコルアダプタ」と呼ばれるプログラム (in.lpd) を起動します。プロトコルアダプタは、印刷要求を翻訳して、印刷スプーラに送信し、その結果を要求依頼元に戻します。プロトコルアダプタは要求の発生時に起動して、ネットワーク要求の処理が完了すると終了します。これによって、印刷のためのアイドル状態のシステムのオーバーヘッドが解消されます。また、Solaris の以前の印刷機能にあった、ネットワークに接続された印刷サポート用の余分なシステム構成が不要になります。
印刷フィルタは、待ち行列内のファイルの内容をある形式から別の形式に変換する印刷サーバー上のプログラムです。
印刷フィルタは、必要に応じて単純なものでも複雑なものでもかまいません。SunOS 5.x システムソフトウェアの場合は、出力先プリンタが PostScript 形式へのデータ変換を必要とするほとんどの PostScript 印刷状況に対応する印刷フィルタが、/usr/lib/lp/postscript ディレクトリに組み込まれています。PostScript 以外のプリンタ用のフィルタが必要な場合は、そのフィルタを作成し、目的のシステムに追加しなければなりません。
一連の「印刷フィルタ記述子ファイル」が /etc/lp/fd ディレクトリに用意されています。これらの記述子ファイルは、フィルタの特性 (高速フィルタや低速フィルタなど) を記述し、フィルタプログラム (/usr/lib/lp/postscript/postdaisy など) を指します。
LP 印刷サービスは、オペレーティングシステムの他の部分と情報をやり取りします。また、標準プリンタインタフェースプログラムを使用して、次の作業を実行します。
必要に応じてプリンタポートを初期化する。標準プリンタインタフェースプログラムは、stty コマンドを使用してプリンタポートを初期化する。
プリンタを初期化する。標準プリンタインタフェースプログラムは、terminfo データベースと TERM シェル変数を使用して、適切な制御シーケンスを見つける。
必要に応じてバナーページを印刷する。
印刷要求で指定された部数だけ印刷する。
LP 印刷サービスは、別のプログラムが指定されなければ、標準インタフェースプログラム (/usr/lib/lp/model ディレクトリに入っています) を使用します。独自のインタフェースプログラムを作成することもできますが、独自のプログラムがプリンタへの接続を終了させないことや正しいプリンタの初期設定を妨げないことを確認しなければなりません。
印刷サーバー上と印刷クライアント上の lpsched デーモンは、処理する印刷要求ごとに 1 つずつログを保管し、印刷処理中に発生するエラーを記録します。このログは /var/lp/logs/lpsched ファイルに保管されます。毎晩、lp cron ジョブは /var/lp/logs/lpsched を新しい lpsched.n ファイル名に変更し、新しいログファイルを開始します。エラーが発生したり、印刷待ち行列からジョブが消えたりした場合は、ログファイルを使用して lpsched で実行された印刷ジョブへの処理を判別できます。
/var/lp/logs ディレクトリ内の lpsched および requests ログファイルは、情報が追加されるにつれて大きくなります。LP 印刷サービスは、デフォルトの cron ジョブを使用してログファイルを消去します。lp cron ジョブは /var/spool/cron/crontabs/lp ファイルに入っています。このジョブはログファイルの内容を定期的に移動します。ログの内容は log.1 に移動され、log.1 の内容は log.2 に移動されるというようになります。log.2 が上書きされると、その内容は失われます (つまり、log.1 の前の内容に置き換えられます)。
# pwd /var/lp/logs # tail requests s 0x1010 = slw2-20, uid 200, gid 200, size 5123, Mon Jun 16 12:27:33 MDT 1997 1992 z slw2 C 1 D slw2 F /etc/motd P 20 t simple U irving s 0x1010 #
Solaris 2.6 リリースより、プリンタサーバー上の requests ログファイルは、毎日ではなく、毎週交換されることになりました。プリンタサーバーの使用頻度が高い場合は、交換間隔を毎日に再設定できます。
プリンタサーバー上でスーパーユーザーまたは lp になります。
EDITOR 環境変数を設定します。
# EDITOR=vi # export EDITOR
lp の crontab ファイルを編集します。
# crontab -e lp
requests ログファイルの交換間隔を指定するファイルの先頭行を、毎日曜日 (0) から、毎日を示すアスタリスク (*) に変更します。
13 3 * * * cd /var/lp/logs; if [ -f requests ]; then if [ -f requests.1 ]; then /bin/mv requests.1 requests.2; fi; /usr/bin/cp requests requests.1; >requests; fi
ファイルを保存して、終了します。
図 45-2 は、ユーザーがローカルプリンタ上に PostScript ファイルを印刷する要求を出したときに実行される動作を示します。ローカルプリンタとは、ユーザーのシステムに接続されたプリンタです。すべての処理はローカルシステムによって実行されます。ただし、印刷要求は、クライアントとサーバーが異なるシステムにある場合と同じ経路をたどります。要求は常に同じ経路をたどって、クライアントからサーバーに流れていきます。
図 45-3 は、SunOS 5.x 印刷クライアント上のユーザーが SunOS 4.1 印刷サーバーに印刷要求を出したときに実行される処理を示しています。このコマンドは接続を開いて、印刷サーバーとの通信を直接処理します。
図 45-4 は、SunOS 5.6 印刷サーバーに印刷要求を出す SunOS 4.1 印刷クライアントを示しています。lpd デーモンは、印刷要求のローカル部分と印刷サーバーへの接続を処理します。印刷サーバー上のネットワーク待機プロセス inetd は、ネットワーク印刷要求を待って、プロトコルアダプタを起動して要求を処理します。プロトコルアダプタは lpsched デーモンと通信し、このデーモンが印刷サーバー上で要求を処理します。
図 45-5 は、SunOS 5.x 印刷クライアントのユーザーが SunOS 5.x の印刷サーバーに印刷要求を出したときに実行される処理を示しています。印刷クライアント上の印刷コマンドは、印刷サーバーと直接通信することによって、各印刷要求のローカル部分を処理します。
印刷サーバー上の inetd プロセスは、ネットワークからの印刷要求を監視し、プロトコルアダプタを起動して、印刷サーバー上の lpsched デーモンと通信します。このデーモンが印刷要求を処理します。