Solaris のシステム管理 (第 2 巻)

パート I 印刷サービスの管理

このパートでは、Solaris 環境で印刷サービスを管理する手順について説明します。次の章が含まれます。

第 1 章「印刷管理の概要」

ネットワーク上で印刷サービスを管理する場合の概要について説明します。印刷サーバー、印刷クライアント、および LP 印刷サービスを取り上げます。 

第 2 章「ネットワーク上でのプリンタの計画方法の概要」

ネットワーク上で印刷サービスの計画を作成する場合の概要について説明します。ネットワーク上のシステム資源の割り当てやプリンタの定義が含まれます。 

第 3 章「プリンタの設定手順」

システム上でプリンタを設定し、ネットワーク上の他のシステムが利用できるようにする詳しい手順を説明します。 

第 4 章「プリンタの管理手順」

プリンタの削除、印刷ポリシーの設定、印刷要求の管理など、プリンタを管理する詳しい手順を説明します。 

第 5 章「文字セット、フィルタ、フォーム、フォントの管理手順」

文字セット、印刷フィルタ、フォーム、およびフォントを設定し管理する詳しい手順を説明します。 

第 6 章「LP 印刷サービスのカスタマイズの手順」

プリンタポート特性の調整や、サポートされていないプリンタの terminfo エントリの追加など、LP 印刷サービスをカスタマイズする詳しい手順を説明します。

第 7 章「LP 印刷サービスの参照情報」

 

LP 印刷サービスの参照情報を説明します。 

第 1 章 印刷管理の概要

この章では、プリンタ、印刷クライアント、および LP 印刷サービスの管理について基本的なことがらを説明します。この章の内容は次のとおりです。

印刷管理作業の詳しい手順については、次の章を参照してください。

Solaris 印刷ソフトウェア

Solaris 印刷ソフトウェアは、以前の Solaris リリースの LP 印刷ソフトウェアに比べ、より高度な集中管理機能を提供します。Solaris 2.6 リリースから NIS や NIS+ のネームサービスを使用して、印刷クライアントの設定と管理が容易に行えるようになりました。

次に、Solaris 印刷ソフトウェアの特徴を示します。

このリリースには、次の制限があります。

印刷パッケージの再設計

Solaris 2.6 リリースより印刷パッケージの設計が見直され、印刷ソフトウェアをインストールする際の柔軟性が向上し、印刷ソフトウェアはモジュールごとにインストールできます。そのため、従来のものよりも小さいディスク容量で印刷クライアントが使用できるようになりました。

再設計された機能を次に示します。

表 1-1 に、印刷パッケージのセットを示します。

表 1-1 Solaris 印刷パッケージ

パッケージのインスタンス 

パッケージ名 

ベースディレクトリ 

SUNWpcr

印刷 - クライアント 

ルート (/)

SUNWpcu

印刷 - クライアント 

usr

SUNWpsr

印刷 - LP サーバー 

ルート (/)

SUNWpsu

印刷 - LP サーバー 

usr

SUNWpsf

PostScript フィルタ 

usr

SUNWscplp

印刷 - ソース互換性 

usr

次の印刷パッケージは削除されました。

SUNWscpu に含まれていた印刷コマンドは、SUNWscplp (印刷 - ソース互換性) に移動されました。

印刷プロトコルアダプタ

Solaris 2.6 リリースより印刷プロトコルアダプタでは、サービスアクセス機能 (SAF)、ネットワークリスナー、および LP スプーラの受信側の lpNet の設計に最新の設計手法が取り入れられ、いっそうのモジュール化が図られています。

上記の再設計により、次の機能が提供されます。

以前の Solaris 2.5.1 オペレーティング環境およびその互換バージョンの印刷クライアントが「BSD」プロトコルを使用して構成されている場合、新しい印刷プロトコルアダプタは、Solaris 2.5.1 オペレーティング環境およびその互換バージョンの印刷クライアントと互換性があります。「BSD」プロトコルが使用されていない場合、Solstice AdminToolsTM、Solstice プリンタマネージャ、または lpsystem コマンドを使用して、以前の Solaris 2.5.1 オペレーティング環境およびその互換バージョンの 印刷クライアントの構成を変更し、「BSD」プロトコルを使用するようにします。

印刷クライアントの使用

印刷クライアントソフトウェアは、NIS マップ、NIS+ テーブル、または 1 つのファイルを使用して、クライアントの集中管理を提供します。印刷クライアントソフトウェアには、次の特徴があります。

拡張ネットワークプリンタサポートの強化

Solaris 印刷ソフトウェアは以前の Solaris リリースに比べ、次の点でネットワークプリンタのサポートが強化されています。

ネットワークプリンタの設定については、第 3 章「プリンタの設定手順」または『Solstice AdminSuite 2.3 管理者ガイド』を参照してください。

Solaris オペレーティング環境での印刷

Solaris 印刷ソフトウェアは、ネットワーク上のプリンタへのクライアントアクセスを設定および管理するための環境を提供します。

Solaris 印刷ソフトウェアは、次のコンポーネントで構成します。

表 1-2 に、Solaris 印刷コンポーネントの機能を要約します。

表 1-2 Solaris 印刷コンポーネントの機能

構成要素 

グラフィカルユーザーインタフェース 

印刷クライアントの設定 

印刷クライアントと印刷サーバーの管理 

NIS または NIS+ の使用 

印刷クライアント 

なし 

できる 

できない 

する 

AdminTool 

あり 

できる 

できる 

しない 

LP コマンド 

なし 

できる 

できる 

しない 

Solstice AdminSuite 

あり 

できる 

できる 

する 


注 -

印刷を設定および管理するために Solstice プリンタマネージャを使用しない場合、他の印刷コンポーネントをいくつか組み合わせて使用しなければ、Solaris 環境での印刷を完全には管理できません。


プリンタの管理方法の選択

印刷クライアントソフトウェアと Solstice AdminSuite プリンタマネージャにより、ネットワーク上のプリンタの設定と管理がグラフィカルなインタフェース環境で行えます。印刷クライアントソフトウェアの利点は、ネームサービス (NIS または NIS+) をサポートしていることで、これによりネットワーク上での印刷を集中管理できます。また、コマンド行で lpadmin を使用しても各システムでプリンタを構成できます。

システム管理ツール (Administration Tool または Admintool) を使用しても、Solaris 環境でプリンタのインストールが行えます。Admintool は、プリンタの設定と管理作業を簡素化するためのグラフィカルユーザインタフェースです。Admintool の使用方法については、第 3 章「プリンタの設定手順」を参照してください。

Admintool を使用すると、リモートシステムに変更を加えることができないので、Admintool は、プリンタが接続されているシステム上で実行しなければなりません。プリンタを設定するときに、Admintool はシステムの /etc/printers.conf/etc/lp ディレクトリに適切な変更を加えます。システムで SunOS 5.6 または 5.7 リリースが稼働している場合にのみ、Admintool を使用してそのシステムを印刷サーバーまたは印刷クライアントとして設定できます。SunOS 4.1 の印刷サーバーとクライアントを設定する方法については、SunOS 4.0 およびその互換バージョンのマニュアルを参照してください。

ほとんどの印刷サービスの設定作業は、Admintool を使用して実行できます。ただし、スクリプトの作成などの特殊なニーズがあれば、LP 印刷サービスコマンド (Admintool のベースとなっているコマンド) を直接使用することもできます。コマンドによる設定作業については、「LP コマンドを使用して、印刷クライアントにアクセスを追加する方法」を参照してください。

表 1-3 に、プリンタ設定情報の参照先を示します。

表 1-3 プリンタ設定情報の参照先

情報 

参照先 

Admintool を使用して印刷クライアントと印刷サーバーを設定する 

第 3 章「プリンタの設定手順」

ネームサービスを使用して印刷クライアントで利用できるプリンタ情報を設定する 

第 3 章「プリンタの設定手順」

LP コマンドを使用してネットワークプリンタを設定する 

第 3 章「プリンタの設定手順」

Solstice プリンタマネージャを使用して印刷 (ネットワークプリンタも含む) を設定および管理する 

Solstice AdminSuite 2.3 管理者ガイド

LP コマンドを使用してプリンタを管理する 

第 4 章「プリンタの管理手順」

LP 印刷サービス

「LP 印刷サービス」は、ユーザーが作業を続けながらファイルを印刷できるようにするソフトウェアユーティリティのセットです。当初、印刷サービスは LP スプーラと呼ばれていました (LP はラインプリンタの意味ですが、現在ではレーザプリンタなどのさまざまな種類のプリンタも含まれます。スプール (Spool) は、system peripheral operation off-line の頭文字です)。

印刷サービスは、LP 印刷サービスソフトウェアとスプーラ (印刷クライアントソフトウェアも含む)、管理者が提供する印刷フィルタ、ハードウェア (プリンタ、システム、およびネットワーク接続) から構成します。

LP 印刷サービスの参照情報については、第 7 章「LP 印刷サービスの参照情報」を参照してください。

LP 印刷サービスに関するその他の情報について、以降の項で説明します。

ネットワークプリンタの管理

「ネットワークプリンタ」は、印刷サーバーに直接接続されていない印刷クライアントに印刷サービスを提供するハードウェアデバイスです。ネットワークプリンタは、独自のシステム名と IP アドレスを持ち、ネットワークに直接接続されています。

一般に、ネットワークプリンタには、プリンタベンダーから提供されているソフトウェアが必要です。プリンタベンダー提供のソフトウェアがあれば、必ずそのソフトウェアを使用してください。ネットワークプリンタのベンダーがソフトウェアサポートを提供していない場合には、Sun が提供するソフトウェアを利用できます。このソフトウェアはネットワークプリンタの汎用サポートを提供するもので、必ずしもプリンタが持つすべての機能を利用できるわけではありません。

ネットワークプリンタの設定手順については、第 3 章「プリンタの設定手順」を参照してください。

プリンタの管理

印刷サーバーと印刷クライアントの設定が完了したら、以下に示すような様々な管理作業を実行します。これらの作業は頻繁に行わなければならないこともあります。

プリンタ管理作業を実行する手順については、第 4 章「プリンタの管理手順」を参照してください。

プリンタの定義の設定

ネットワーク上のプリンタの定義を設定することによって、より効果的な印刷環境をユーザーに提供できます。たとえば、サイトにあるすべてのプリンタに説明を付ければ、ユーザーはプリンタがどこにあるのかを見つけやすくなります。あるいは、プリンタのクラスを定義することにより、印刷要求を迅速に処理できます。

プリンタ定義の設定については、第 2 章「ネットワーク上でのプリンタの計画方法の概要」を参照してください。

文字セット、フィルタ、フォーム、およびフォントの管理

作業環境とネットワーク上のプリンタの型式に応じて、LP 印刷サービスのプリンタ固有の機能を設定し、管理する必要があります。たとえば、異なる印字ホイール、フィルタ、フォームをプリンタごとに割り当てることができます。文字セット、印刷フィルタ、フォーム、およびフォントを設定し管理する方法の手順については、第 5 章「文字セット、フィルタ、フォーム、フォントの管理手順」を参照してください。

LP 印刷サービスのカスタマイズ

LP 印刷サービスは、ほとんどのプリンタと印刷ニーズに対応できる十分な柔軟性を持つように設計されていますが、あらゆる状況に対処できるわけではありません。LP 印刷サービスの標準機能では対処できない印刷要求が発生する場合もあります。また、LP 印刷サービスによるプリンタの処理方法に当てはまらないプリンタを使用することもあります。

LP 印刷サービスは、次のような方法でカスタマイズできます。

LP 印刷サービスのカスタマイズの概要と手順については、第 6 章「LP 印刷サービスのカスタマイズの手順」を参照してください。

印刷クライアントソフトウェアの使用

この節では、印刷クライアントソフトウェアがどのように動作するかについて概要を説明します。

印刷クライアントの処理手順

図 1-1 に、ユーザーが要求を発行してから印刷されるまでの、印刷要求の流れを示します。

図 1-1 印刷クライアントの処理手順の概要

Graphic

  1. ユーザーは印刷クライアントコマンドを使用して、印刷クライアントから印刷要求を出します。

  2. 印刷クライアントコマンドは印刷構成資源の階層をチェックして、印刷要求をどこに送信するか決定します。

  3. 印刷クライアントコマンドは、印刷要求を適切な印刷サーバーに直接送信します。印刷サーバーは、BSD 印刷プロトコルを受け付ける任意のサーバーです。SVR4 (LP) 印刷サーバーや BSD 印刷サーバー (SunOS 4.1 の BSD 印刷サーバーなど) が印刷サーバーとなります。

  4. 印刷サーバーは印刷要求を適切なプリンタに送信します。

  5. 印刷要求が印刷されます。

印刷クライアント

この節では「印刷クライアント」、つまり印刷要求を印刷サーバーに送信できるシステムと、印刷クライアントが印刷要求を発行するための印刷コマンドを中心に説明します。

図 1-2 に、印刷手順の中で、ユーザーが印刷クライアントから印刷要求を発行する処理を強調して示します。

図 1-2 ユーザーが 印刷クライアントから印刷要求を発行する

Graphic

印刷クライアントとは

システムに印刷クライアントソフトウェアをインストールして、リモートプリンタにアクセスできるようにすると、そのシステムは印刷クライアントになります。印刷クライアントコマンドの名前と出力は、以前の Solaris リリースの印刷コマンドのものと同じです。

印刷クライアントコマンドによる印刷処理の向上

印刷クライアントコマンドを使用すると、クライアントシステムは、より効率的な印刷クライアントになります。プリンタ構成情報を見つけるために、より多くのオプションを印刷クライアントコマンドに指定できるようになりました。また、クライアントは印刷サーバーと直接通信します。以前の Solaris オペレーティング環境では、印刷クライアントにこのような機能はありませんでした。

印刷クライアントコマンドには、次のような利点があります。

プリンタ構成資源

この節では、印刷クライアントコマンドが、プリンタ名とプリンタ構成情報を見つけるのに使用する資源について説明します。

印刷クライアントコマンドは、ネットワーク上のすべてのプリンタのプリンタ構成情報を格納するネットワーク (共有) 資源である、ネームサービスを使用できます。ネームサービス (NIS または NIS+) は、プリンタ構成情報の管理を簡単にします。プリンタをネームサービスに追加すると、ネットワーク上のすべての印刷クライアントは、そのプリンタにアクセスできます。

図 1-3 に、印刷手順の中で、印刷クライアントコマンドによりプリンタ構成資源の階層を調べ、どこに印刷要求を送信するか決定する処理を強調して示します。

図 1-3 印刷クライアントが資源を調べてプリンタを見つける

Graphic

印刷クライアントソフトウェアがプリンタを見つける手順

図 1-4 に示すように、印刷クライアントのコマンドには、プリンタとプリンタ構成情報を見つけるためにより多くのオプションを指定できます。

図 1-4 印刷クライアントソフトウェアがプリンタを見つける手順

Graphic

  1. ユーザーは lp コマンドまたは lpr コマンドを使用して、印刷クライアントから印刷要求を出します。ユーザーは、次の 3 つの形式のいずれかを使用して、出力先のプリンタ名またはプリンタクラスを指定できます。

    • 単独名形式。次の例に示すように、印刷コマンドとオプションの後にプリンタ名またはプリンタクラスが続きます。

      % lp -d neptune filename
      
    • POSIX 形式。次の例に示すように、印刷コマンドとオプションの後に server:printer が続きます。

      % lpr -P galaxy:neptune filename
      
    • コンテキストベース形式。次の例に示すように、『Federated Naming Service Programming Guide』で規定されている指定形式です。

      % lpr -d thisdept/service/printer/printer-name filename
      
  2. 印刷コマンドは、次の手順でプリンタとプリンタ構成情報を見つけます。

    • ユーザーが宛先のプリンタ名またはプリンタクラスを 3 つの有効な形式のいずれかで指定しているかどうかを調べます。

    • ユーザーがプリンタ名またはプリンタクラスを有効な形式で指定していない場合、ユーザーの PRINTER 環境変数または LPDEST 環境変数にデフォルトプリンタ名が指定されていないか調べます。

    • どちらの環境変数にもデフォルトプリンタが指定されていない場合は、ユーザーのホームディレクトリの .printers ファイルで _default プリンタ別名が設定されていないか調べます。

    • .printers ファイルに _default プリンタ別名が設定されていない場合は、印刷クライアントの /etc/printers.conf ファイルで構成情報を調べます。

    • /etc/printers.conf ファイルでプリンタが見つからない場合は、ネームサービス (NIS または NIS+) があればそれを調べます。

プリンタを検出する際に 印刷クライアントが用いる方法には、次の利点があります。

どのような環境でネームサービスを使用するか

ネームサービスは、ネットワーク上のプリンタ構成情報を追加、変更、削除するための最も効率的な方法です。ほとんどすべてのサイトはネームサービスを使用することにより大きな恩恵を受けます。ただし、数台のプリンタと印刷クライアントだけしか存在しない小規模なネットワークは例外です。

印刷サーバーの使用

概要のこの節では、印刷サーバーに焦点を当てて説明します。印刷サーバーにはローカルプリンタが接続されており、印刷サーバーは、ネットワーク上の他のシステムがそのプリンタを利用できるようにします。図 1-5 に、印刷手順の中で、印刷サーバーが印刷要求をプリンタに送信する処理を強調して示します。

図 1-5 印刷サーバーが印刷要求をプリンタに送信する

Graphic

BSD 印刷プロトコル

印刷クライアントコマンドは、BSD 印刷プロトコルを使用します。このプロトコルの利点の 1 つは、さまざまな印刷サーバーと通信できることです。

BSD 印刷プロトコルは業界標準のプロトコルです。このプロトコルは広く使用されており、さまざまなメーカーの異なるタイプのシステム間で互換性を提供します。Sun は、将来の相互運用性を提供するために、BSD 印刷プロトコルをサポートします。

次に進む手順

次に第 3 章「プリンタの設定手順」に進みます。

計画を立てるための情報が必要な場合は、第 2 章「ネットワーク上でのプリンタの計画方法の概要」を参照してください。

第 2 章 ネットワーク上でのプリンタの計画方法の概要

ネットワーク上のプリンタを設定する目的は、ユーザーが 1 つまたは複数のプリンタにアクセスできるようにすることです。この節では、最も効率よくネットワーク間でプリンタを分散する方法とプリンタ設定を計画する方法について説明します。

印刷管理作業の手順については、次の章を参照してください。

ネットワーク上でのプリンタの分散

管理者として、各プリンタを 1 台のシステム専用にするのが効率がよいか、多数のシステムが利用できるようにするのがよいかを判断しなければなりません。ネットワーク環境では、複数の印刷サーバー上にプリンタを分散するのが通常は最もよい方法です。複数の印刷サーバーを設定する利点は、ある印刷サーバーに問題が発生しても、別の印刷サーバーに印刷要求を振り替えられることです。

集中化した印刷構成を採用した場合も、使い勝手をよくしたり、応答時間を短縮したりするために、プリンタをユーザーのシステムに接続できます。ユーザーのシステムに接続されたプリンタも、ネットワーク上の他のシステムから利用できます。

図 2-1 は、集中化印刷構成を採用した場合もプリンタをユーザーのシステムに接続できる例を示しています。

図 2-1 ネットワーク上でプリンタを分散する方法

Graphic

印刷サーバーと印刷クライアントを割り当てる

どのシステムにローカルプリンタを接続し、どのシステムでは他のシステム上のプリンタを使用するかを決定する必要があります。ローカルプリンタを接続し、そのプリンタをネットワーク経由で他のシステムでも利用できるようにしているシステムを「印刷サーバー」と呼びます。印刷サーバーに印刷要求を送るシステムを「印刷クライアント」と呼びます。

LP 印刷サービスは、Solaris 環境で印刷サービスを管理するソフトウェアです。プリンタをシステムに物理的に接続するだけではなく、LP 印刷サービスに対してプリンタの特性を定義し、システムを印刷サーバーにしなければなりません。印刷サーバーを設定し終わったら、他のシステムを印刷クライアントとして設定できます。

印刷サーバーと印刷クライアントは、それぞれ異なるバージョンの SunOS オペレーティングシステム上で実行できます。SunOS 5.7 またはその互換バージョンのオペレーティングシステムを稼動しているシステムから、SunOS 4.1 オペレーティングシステムを稼動している既存の印刷サーバーに印刷要求を送ることができ、またその逆も可能です。


注 -

SunOS 5.7 は Solaris 7 オペレーティング環境に含まれます。


図 2-2 は、SunOS 5.7 および互換バージョンと SunOS 4.1 のオペレーティングシステムが動作しているシステムからなるネットワーク上の印刷構成の例を示しています。

図 2-2 SunOS 4.1 システムと SunOS 5.7 システムからなる印刷構成の例

Graphic

印刷サーバーの必要事項と推奨事項

プリンタは、スタンドアロンシステムまたはネットワーク上の任意のシステムに接続できます。ネットワークに接続されていて、プリンタを備えているシステムは、印刷負荷を管理できる十分な資源があれば、どれでも印刷サーバーとして使用できます。

スプーリング空間

「スプーリング空間」とは、印刷待ち行列内で要求を格納し、処理するためのディスク空間です。スプーリング空間は、どのシステムを印刷サーバーとして指定するかを決定する場合の唯一重要な要素です。ユーザーがファイルの印刷要求を出すと、それらのファイルは印刷が完了するまで /var/spool/lp ディレクトリに格納されます。/var ディレクトリのサイズは、ディスクのサイズとディスクのパーティション分割方法によって異なります。スプーリング空間は、印刷サーバーのハードディスク上の /var ディレクトリに割り当てられるか、ファイルサーバーからマウントされてネットワーク上でアクセスされます。


注 -

/var が別のスライスとして作成されていない場合、/var ディレクトリはルート (/) ファイルシステムの空間を使用します。これは、不十分な空間になる可能性があります。


ディスク空間

システムを印刷サーバーの候補として評価するときは、利用できるディスク空間を考慮してください。大きなスプールディレクトリでは、600M バイトのディスク空間を消費することもあります。印刷サーバーとして指定できるシステム上で、ディスク空間のサイズと分割設定を調べてください。

また、印刷のニーズと印刷クライアントシステムの利用パターンを慎重に調べてください。小さなグループのユーザーが短い電子メールメッセージ、つまり複雑なフォームを必要としない単純な ASCII ファイルだけを印刷する場合は、20〜25M バイトのディスク空間を /var に割り当てた印刷サーバーで十分でしょう。ただし、多数の印刷クライアントユーザーが長い文書、ビットマップ、またはラスタイメージファイルを印刷する場合は、スプーリング空間が頻繁にフルになります。ユーザーがジョブを印刷待ち行列に入れることができないと、作業の流れは中断してしまいます。より多くのスプーリング空間を要求すると、システム管理者はスプーリング用のディスク空間を追加するか、異なるシステムをグループの印刷サーバーとして指定しなくてはならない場合があります。

印刷サーバーが使用する/var ディレクトリが小さなパーティション上にあり、大きなディスク空間がディスク上の他の場所で利用可能な場合は、そのディスク空間を印刷サーバーの /var ディレクトリにマウントすることにより、スプーリング空間として使用できます。ファイルシステムのマウントと vfstab ファイルの編集方法については、『Solaris のシステム管理 (第 1 巻)』の「ファイルシステムのマウントとマウント解除の手順」を参照してください。

メモリー

Solaris 環境で実行するには、少なくとも 16M バイトのメモリーが必要です。印刷サーバー用にメモリーを追加する必要はありません。ただし、メモリーが多ければ、印刷要求のフィルタリング処理が高速になります。

スワップ空間

印刷サーバー上のスワップ空間は、LP 印刷サービスを処理するのに十分な量を割り当ててください。スワップ空間を増やす方法については、『Solaris のシステム管理 (第 1 巻)』の「追加スワップ空間の構成の手順」を参照してください。

ハードディスク

最適の性能を発揮させるには、印刷サーバーにハードディスクとローカル /var ディレクトリが必要です。印刷サーバー用のスプーリング空間をローカルのハードディスク上にマウントしてください。印刷サーバーに専用のハードディスクとローカルの /var ディレクトリがあれば、印刷処理ははるかに高速になり、印刷要求の処理に必要な時間をより正確に予測できます。

プリンタ設定の計画

この節では、Solaris 環境で印刷するための計画の立て方の概要を説明します。

プリンタの定義の設定

ネットワーク上でのプリンタの定義は、より効率的な印刷環境をユーザーに提供するための継続的な作業です。この作業によって、たとえばユーザーがプリンタの位置を見つけやすいようにすべてのプリンタのパラメタを設定したり、プリンタのクラスを定義して印刷要求への応答時間を短縮したりできます。

lpadmin コマンドを使用すると、すべての印刷定義を設定できますが、Admintool を使用するとプリンタのインストールまたは変更時にその一部のみを設定できます。表 2-1 は、印刷定義と、その定義を Admintool で割り当てることができるかどうかを示しています。

表 2-1 Admintool で設定される印刷定義

印刷定義 

Admintool で設定できるか 

プリンタ名

設定できる 

プリンタの説明

設定できる 

プリンタポート

設定できる 

プリンタタイプ

設定できる 

ファイル内容形式

設定できる。ただし lpadmin コマンドより機能は少ない

障害通知

設定できる。ただし lpadmin コマンドより機能は少ない

デフォルトプリンタ

設定できる 

バナーページの印刷

設定できる。ただし lpadmin コマンドより機能は少ない

プリンタへのユーザーアクセスの制限

設定できる。ただし lpadmin コマンドより機能は少ない

プリンタクラス

設定できない 

障害回復

設定できない 

プリンタ名

システムにプリンタを追加するときは、その「プリンタ名」を指定します。プリンタ名は、次の規則に従ってください。

サイトに合った命名規則を設定してください。たとえば、ネットワーク上で異なるタイプのプリンタを使用する場合は、プリンタ名の一部にプリンタタイプを含めると、ユーザーは適切なプリンタを選択しやすくなります。たとえば、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 7 インストールライブラリ (Intel 版)』を参照してください。


プリンタタイプ

プリンタタイプとは、プリンタの種類を表す一般名です。プリンタタイプは、プリンタの様々な制御シーケンスが入っている terminfo データベースエントリを識別します。通常、プリンタタイプはメーカーのモデル名からとります。たとえば、DECwriter のプリンタタイプ名は decwriter です。ただし、共通プリンタタイプ PS はこの規則に従いません。PS は LaserWriter I や LaserWriterII プリンタなど、多くの PostScript プリンタモデルのプリンタタイプとして使用されます。

lpadmin -T コマンドまたは Admintool を使用すると、プリンタタイプを指定できます。Admintool では、プリンタのインストール時にのみプリンタタイプを指定できます。既存のプリンタのタイプを変更したい場合は、Admintool を使用してそのプリンタを削除してインストールし直さなければなりません。既存のプリンタ以外の場合、lpadmin コマンドによりプリンタタイプを変更します。

Admintool を使用すると、メニューからプリンタタイプを選択するか、「その他 (Other)」を選択して terminfo データベース内でプリンタタイプを指定できます。この方法には、lpadmin コマンドと同じ機能があります。

terminfo データベース内のプリンタ名

各プリンタタイプに関する情報は、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 印刷サービスが使用する名前に変換されます。表 2-2 は、Admintool で選択できるファイル内容形式を示しています。

表 2-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 はページの順序を逆転させ、各ページを逆順で印刷してバナーページを最後に印刷します。

表 2-3 は、PostScript 以外の他のプリンタと、各プリンタの構成に使用するプリンタタイプを示しています。これらのプリンタでは、ファイル内容形式は simple です。


注 -

Sun では表 2-3 のプリンタをサポートしていませんが、フィルタ処理を行うか、プリンタがファイル内容形式を直接印刷できれば、サポートしていないプリンタを使用できます。以下の製品に不明な点がある場合は、製造元に問い合わせてください。


表 2-3 Sun がフィルタを提供していない PostScript 以外のプリンタ

プリンタ 

プリンタタイプ 

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 エントリを追加する方法」を参照してください。

第 3 章 プリンタの設定手順

この章では、プリンタを設定してネットワーク上のシステムからアクセスできるようにする手順を説明します。ほとんどのプリンタ設定作業は、Admintool を使用して実行できます。この章で説明する手順は、次のとおりです。

プリンタの概要については、第 1 章「印刷管理の概要」を参照してください。

印刷クライアントを更新して、既存のプリンタにアクセスする

この節では、サイトにある SunOS 5.5.1 またはその互換バージョンを稼動しているシステムのプリンタ構成情報を変換して、その情報を印刷クライアントにコピーすることにより、既存のプリンタにアクセスできるようにする方法を説明します。


注 -

既存のプリンタの台数が少ない場合は、Solstice プリンタマネージャか Admintool を使用してプリンタへのアクセスを追加する方が、プリンタ構成情報を変換して印刷クライアントに配布するよりも簡単です。プリンタへアクセスを追加する方法については、表 3-2 を参照してください。


印刷クライアントを更新して、既存のプリンタにアクセスする作業マップ

表 3-1 に、サイトにある SunOS 5.5.1 またはその互換バージョンを稼動しているシステムのプリンタ構成情報を変換して、その情報を印刷クライアントにコピーすることにより、既存のプリンタにアクセスできるようにする作業の概要を示します。

表 3-1 作業マップ: 印刷クライアントを更新して、既存のプリンタにアクセスする

作業 

説明 

手順の説明 

既存のプリンタ構成情報を変換する 

SunOS 5.5.1 または互換バージョンのシステムのプリンタ構成情報を変換する。

SunOS 5.5.1 または互換バージョンのソフトウェアを使用しているサイトでは、/etc/lp/printers ディレクトリ内のプリンタ構成情報を、/etc/printers.conf 構成ファイルに変換する。通常、この作業は 1 回行うだけでよい。

「SunOS 5.5.1 または互換バージョンのシステムの印刷情報を変換する方法」

 

SunOS 4.1 を稼動するシステムのプリンタ構成情報を変換する。

SunOS 4.1 ソフトウェアを使用しているサイトでは、4.1 システムの /etc/printcap ファイル内のプリンタ構成情報を、/etc/printers.conf 構成ファイルに変換する。通常、この作業は 1 回行うだけでよい。

「SunOS 4.1 システムの印刷情報を変換する方法」

既存のプリンタ構成情報の変換

既存のプリンタ構成情報は、Solaris 7 またはその互換バージョンをインストールあるいはアップグレードするときに自動的に変換されます。この節では、SunOS 5.5.1 またはその互換バージョンのシステム、あるいは SunOS 4.1 のシステムのプリンタ構成情報を、印刷クライアントソフトウェアで使用する /etc/printers.conf プリンタ構成ファイルに変換する方法を説明します。変換作業を自動化するために、2 つの新しい印刷管理コマンドのいずれかを使用します。

ネームサービスを使用していない場合、サイトにある既存のプリンタを含む、/etc/printers.conf のマスターファイルを作成します。次に、このマスターファイルをすべての印刷クライアントにコピーするか、(ネームサービスを使用している場合は)、NIS または NIS+ にロードします。新しい印刷クライアントは、最初から、サイトにある既存のプリンタにアクセスできるようにしておくことを推奨します。


注意 - 注意 -

NIS または NIS+ ネームサービスを使用してプリンタ情報を構成している場合、印刷クライアント上の /etc/printers.conf ファイルは使用しないでください。印刷クライアントは、最初に /etc/printers.conf ファイルを使用してプリンタを検出します。そのときに、/etc/printers.conf ファイル内の情報と、NIS マップまたは NIS+ マップ内のプリンタ情報に矛盾がある場合は、予期せぬ結果が生じることがあります。この問題を回避するために、印刷クライアントが NIS ネームサービスまたは NIS+ を使用してプリンタ情報を構成するときは、印刷クライアント上の /etc/printers.conf ファイルを削除してください。


SunOS 5.5.1 または互換バージョンのシステムの印刷情報を変換する方法

  1. SunOS 5.7 またはその互換バージョンと、Solaris 2.6 または互換バージョンの印刷クライアントソフトウェアがインストールされているシステムに、スーパーユーザーとしてログインします。

  2. そのシステムの /etc/lp/printers ディレクトリ内のプリンタ構成情報を /etc/printers.conf ファイルに変換します。

    # /usr/lib/print/conv_lp
    

SunOS 4.1 システムの印刷情報を変換する方法

  1. SunOS 4.1 システムの /etc/printcap ファイルを、Solaris 7 互換の印刷クライアントソフトウェアをインストールしている SunOS 5.7 または互換システムにコピーします。

  2. /etc/printcap ファイルをコピーした SunOS 5.7 または互換システムに、スーパーユーザーとしてログインします。

  3. /etc/printcap ファイル内のプリンタ構成情報を /etc/printers.conf ファイルに変換します。

    # /usr/lib/print/conv_lpd
    

印刷の設定の作業マップ

「印刷の設定の作業マップ」は、印刷サーバーの設定 (プリンタの追加) と印刷クライアントの設定 (プリンタへのアクセスの追加) に必要な作業の概要を示しています。ローカルプリンタとは、印刷サーバーに物理的にケーブル接続されたプリンタのことです。ネットワークプリンタとは、ネットワークに物理的に接続されたプリンタのことです。プリンタへのアクセスを追加する (つまり、リモートアクセスを追加する) とは、印刷クライアント (サーバー以外のすべてのマシン) がプリンタにアクセスできるようにする手順のことです。

印刷の設定の作業マップ

表 3-2 作業マップ: 印刷の設定

作業 

説明 

手順の説明 

1. ローカルプリンタの追加 

Admintool を使用する

プリンタをシステムに物理的に接続した後で、Admintool を使用してプリンタを使用できるようにする。 

「Admintool を使用してローカルプリンタを追加する方法」

 

LP コマンドを使用する

プリンタをシステムに物理的に接続した後で、LP コマンドを使用してプリンタを使用できるようにする。 

「LP コマンドを使用してローカルプリンタを追加する方法」

2. プリンタへのアクセスの追加 

Admintool を使用する

Admintool を使用して、プリンタへのアクセスを印刷クライアントに追加する。 

「Admintool を使用して印刷クライアントにプリンタアクセスを追加する方法」

 

LP コマンドを使用する

lp コマンドを使用して、プリンタへのアクセスを印刷クライアントに追加する。

「LP コマンドを使用して、印刷クライアントにアクセスを追加する方法」

 

ネームサービスを使用する

NIS または NIS+ ネームサービスの /etc/printers.conf ファイルを設定して、プリンタへのアクセスを印刷クライアントに追加する。

「ネームサービスを使用して、リモートプリンタへのアクセスを追加する」

3. 既存のプリンタへのアクセスの追加 

マスターファイル /etc/printers.conf をクライアントにコピーする

ネームサービスを使用していない場合は、変換したシステムの /etc/printers.conf ファイル内のプリンタ構成情報を、他の印刷クライアントにコピーする。

「印刷クライアントの既存のプリンタへのアクセスを有効にする」

 

/etc/printers.conf ファイルを使用して、NIS にロードする

NIS ネームサービスを使用する場合は、変換したシステムの /etc/printers.conf ファイルのプリンタ構成情報を NIS マスターファイルにコピーする。

/etc/printers.conf ファイルを使用して、NIS にロードする方法」

 

/etc/printers.conf ファイルを使用して、NIS+ にロードする

NIS+ ネームサービスを使用する場合は、変換したシステムの /etc/printers.conf ファイルのプリンタ構成情報を NIS マスターファイルにコピーする。

/etc/printers.conf ファイルを使用して、NIS+ にロードする方法」

4. .printers ファイルの設定

(省略可能) $HOME/.printers ファイルを使用して、ユーザーが独自のカスタムプリンタ別名を設定できるようにする。

.printers ファイルの設定」

5. ネットワークプリンタの追加 

プリンタベンダー提供のツールを使用する

プリンタをネットワークに物理的に接続した後、ベンダー提供のソフトウェアを使用してネットワークプリンタを構成する。 

「プリンタベンダー提供のツールを使用してネットワークプリンタを追加する方法」

 

LP コマンドを使用する

プリンタをネットワークに物理的に接続した後、Solaris 7 または互換バージョンのソフトウェアを使用してネットワークプリンタを構成する。 

「LP コマンドを使用して、ネットワークプリンタを追加する方法」

6. バナーページのオフ 

(省略可能) 印刷されないように、バナーページをオフにできる。

「バナーページをオフにする方法」

7. 障害警告の設定  

(省略可能) プリンタ用に Admintool よりも限定的な障害警告を設定できる。

「プリンタの障害警告を設定する方法」

8. 障害回復機能の設定 

(省略可能) Admintool では、障害が起きた後でプリンタを回復させる方法を設定できない。

「プリンタの障害回復を設定する方法」

9. プリンタへのアクセス制限  

(省略可能) Admintool で、許可リストを設定できる。ただし、プリンタへアクセスできるユーザーを制限したい場合には、拒否リストを設定する。

「プリンタへのユーザーアクセスを制限する方法」

Admintool を起動する方法

  1. 次の前提条件を満たしているかどうかを確認します。Admintool を使用するには、以下の条件を満たさなければなりません。

    • ビットマップディスプレイモニター。Admintool は、Sun のワークステーションの標準ディスプレイモニターなど、ビットマップ画面のコンソールを使用するシステムでだけ使用できます。

    • OpenWindows 環境のような X Window System を実行している

    • sysadmin グループ (グループ 14) のメンバーである

  2. プリンタを設定したいシステムにログインします。

  3. 次のコマンドを使用して Admintool を起動します。

    $ admintool &
    

    Admintool のメインウィンドウが表示されます。

  4. 「ブラウズ (Browse)」メニューから「プリンタ (Printers)」を選択します。

    「Admintool: プリンタ (Printers)」ウィンドウが表示されます。

    Graphic

印刷サーバーの設定

システムにローカルプリンタまたはネットワークプリンタを追加すると、そのプリンタにローカルシステムからアクセスできるようになります。プリンタをインストールするシステムが「印刷サーバー」になります。

プリンタは、Admintool と LP 印刷サービスコマンドのどちらでも追加できます。次に、それぞれを使用する方法を説明します。

Admintool を使用してローカルプリンタを追加する方法

  1. プリンタサーバーにするシステムを選択します。

    pkginfo(1) コマンドを使用して、印刷サーバーに印刷パッケージ SUNWpcrSUNWpcuSUNWpsrSUNWpsuSUNWscplp、および SUNWpsf がインストールされているか確認します。

    # pkginfo package_instance
    
  2. プリンタをプリンタサーバーに接続し、プリンタの電源を入れます。

    ハードウェアのスイッチとケーブルの要件については、プリンタのインストールマニュアルを参照してください。

  3. プリンタを接続したプリンタサーバー上で Admintool を起動します。

    詳細は、「Admintool を起動する方法」の手順を参照してください。

  4. 「編集 (Edit)」メニューから「追加 (Add)」、「ローカルプリンタ (Local Printer)」の順に選択します。

    「ローカルプリンタの追加 (Add Local Printer)」ウィンドウが表示されます。

  5. ウィンドウに情報を入力します。

    フィールドに情報を入力する必要がある場合は、「ヘルプ (Help)」ボタンをクリックして、このウィンドウのフィールド定義を表示します。

  6. 「了解 (OK)」をクリックします。

    プリンタが Admintool のプリンタウィンドウに表示されます。

  7. Admintool を終了します。

    左上隅にあるボタンをクリックし、「終了 (quit)」を選択します。

  8. 新しいプリンタへのアクセスをクライアントに追加します。

    これでプリンタは追加されました。プリンタへのアクセスをクライアントで作成します。詳細は、「印刷クライアントの設定」を参照してください。

  9. オプションの作業を完了します。

    プリンタを設定するときは、オプションの (省略可能な) 作業がいくつかあります。残りの作業の参照先については、「印刷の設定の作業マップ」を参照してください。

「Admintool: ローカルプリンタの追加 (Add Local Printer)」ウィンドウの入力例

この例では、プリンタ luna が印刷サーバー krypton に追加されています。

Graphic

LP コマンドを使用してローカルプリンタを追加する方法

ローカルプリンタの追加は、コマンド行インタフェースを使用しても行えます。

  1. プリンタサーバーにするシステムを選択します。

    pkginfo(1) コマンドを使用して、印刷サーバーに印刷パッケージ SUNWpcrSUNWpcuSUNWpsrSUNWpsuSUNWscplp、および SUNWpsf がインストールされているか確認します。

    # pkginfo package_instance
    
  2. プリンタをプリンタサーバーに接続して、プリンタの電源を入れます。

    ハードウェアのスイッチとケーブル接続の要件については、プリンタのインストールマニュアルを参照してください。

  3. lp の所有権を設定して、ポートデバイスに対する読み取り権と書き込み権を設定します。

    # chown lp /dev/term/device
    # chmod 600 /dev/term/device
    
  4. lpadmin(1M) コマンドを使用して、プリンタ名、デバイス、プリンタタイプ、および内容形式を定義します。

    1. プリンタ名とプリンタが使用するポートデバイスを定義します。

      # lpadmin -p printer-name -v /dev/term/device 
      
    2. プリンタのプリンタタイプを設定します。

      # lpadmin -p printer-name -T printer-type 
      
    3. プリンタのファイル内容形式を指定します。

      # lpadmin -p printer-name -I content-type
      
  5. lpfilter(1M) コマンドを使用して、フィルタを印刷サーバーに追加します。

    1. 必要なフィルタがインストールされているかどうかを決定します。

      #	lpfilter -l -f all 
      

      フィルタがインストールされていない場合は、次のメッセージが表示されます。

      エラー : No filter by the name "" exists.
    2. フィルタのインストールが必要な場合は、lpfilter コマンドを使用して、フィルタをインストールします。

      #	cd /etc/lp/fd
      # for filter in *.fd;do
          > name=`basename $filter .fd`
          > lpfilter -f $name -F $filter
          > done
      
  6. プリンタがプリンタ要求を受け入れて、その要求を印刷できるようにします。

    #	accept printer-name
    #	enable printer-name
    
  7. lpstat(1) コマンドを使用して、プリンタが正しく構成されているか確認します。

    #	lpstat -p printer-name
    
  8. (省略可能) プリンタの説明を追加します。

    # lpadmin -p printer_name -D "description"
    
  9. 新しいプリンタへのアクセスをクライアントで追加します。

    これでプリンタは追加されました。プリンタへのアクセスをクライアントで作成します。詳細は、「印刷クライアントの設定」を参照してください。

  10. オプションの作業を完了します。

    プリンタを設定するときは、オプションの (省略可能な) 作業がいくつかあります。残りの作業の参照先については、「印刷の設定の作業マップ」を参照してください。

例 - LP コマンドを使用してローカルプリンタを追加する

この例では、ローカルの PostScript プリンタを印刷サーバーで印刷できるようにする方法を示しています。この例のコマンドは、プリンタが接続されている印刷サーバーで実行しなければなりません。この例では次の情報を使用していますが、これらの情報は状況によって異なります。

印刷クライアントの設定

印刷クライアントは、プリンタ用のサーバーではないが、プリンタにアクセスできるシステムのことです。印刷クライアントは、印刷サーバーのサービスを使用して、印刷ジョブのスプール、スケジュール、およびフィルタリングを実行します。1 つのシステムがあるプリンタの印刷サーバーになり、同時に他のプリンタの印刷クライアントになることも可能です。

リモートプリンタへのアクセスは、ドメイン単位またはマシン単位で構成できます。これら 2 つの組み合わせも利用できます。マシン単位でリモートプリンタへのアクセスを追加する方法については、「Admintool を使用して印刷クライアントにプリンタアクセスを追加する方法」または 「LP コマンドを使用して、印刷クライアントにアクセスを追加する方法」を参照してください。ドメイン単位でアクセスを追加する方法については、「ネームサービスを使用して、リモートプリンタへのアクセスを追加する」の手順に従ってください。

Admintool を使用して印刷クライアントにプリンタアクセスを追加する方法

  1. リモートプリンタへのアクセスを追加したいシステム上で Admintool を起動します。

    詳細は、「Admintool を起動する方法」の手順を参照してください。

  2. 「編集 (Edit)」メニューから「追加 (Add)」、「プリンタへのアクセス (Access to Printer)」の順に選択します。

    「プリンタへのアクセス (Add Access to Printer)」ウィンドウが表示されます。

  3. ウィンドウに情報を入力します。

    フィールドに情報を入力する必要がある場合は、「ヘルプ (Help)」ボタンをクリックして、このウィンドウのフィールドの定義を表示します。

  4. 「了解 (OK)」をクリックします。

    プリンタが Admintool メインウィンドウに表示されます。

  5. Admintool を終了します。

    左上隅にあるボタンをクリックし、「終了 (quit)」を選択します。

例 - 印刷クライアントにプリンタアクセスを追加する

次の例では、印刷クライアント rogue が、印刷サーバー enterprise 上のプリンタ rocket にアクセスできるようにします。

Graphic

LP コマンドを使用して、印刷クライアントにアクセスを追加する方法

  1. 必要な情報を収集します。

    必要な情報は、プリンタ名とそのプリンタのサーバー名です。

  2. lpadmin コマンドを使用して、プリンタを定義します。

    # lpadmin -p printer_name -s server_name
    
  3. (省略可能) プリンタ記述を追加します。

    # lpadmin -p printer_name -D "description"
    
  4. lpstat コマンドを使用して、プリンタが正しく構成されていることを確認します。

    #	lpstat -p printer-name
    

例 - LP コマンドを使用して、印刷クライアントにアクセスを追加する

リモートプリンタで印刷する場合、リモートプリンタにアクセスを追加しなければなりません。次の例は、印刷サーバー saturn のプリンタ luna にアクセスを構成する方法を示しています。システム saturn は、プリンタ luna の印刷クライアントになります。

 [ プリンタと印刷サーバーを指定する。] # lpadmin -p luna -s saturn
 [ プリンタの説明を追加する。] # lpadmin -p luna -D "Room 1954 ps"
 [ プリンタをシステムのデフォルトのプリンタ宛先として設定する。] # lpadmin -d luna
 [ プリンタが用意できていることを確認する。] # lpstat -p luna
		printer luna is idle. enabled since Jun 16 10:25 1998. available.

ネームサービスを使用して、リモートプリンタへのアクセスを追加する

NIS または NIS+ マップを使用している場合、プリンタへのアクセスはドメイン単位で設定します。詳細は、NIS+(1) のマニュアルページを参照してください。

NIS を使用して、ドメイン単位のアクセスをプリンタに追加する方法

NIS マスターサーバー上で lpset コマンドを実行しprinters.conf ファイルを作成します。次に、マップを作成して、そのマップをプッシュします。これで、ドメイン内のすべてのメンバーに、マップ内で定義されたプリンタへのアクセスを与えます。lpset(1M) のマニュアルページを参照してください。

  1. NIS マスターサーバー上でスーパーユーザーになります。

  2. プリンタごとに lpset コマンドを使用して、printers.conf ファイルを作成します。

    # lpset -a bsdaddr=server1,printer1,extensions printer1
    
    -a bsdaddr=server1,printer1,extensions

    印刷サーバーとプリンタ宛先を追加して、Solaris プロトコル拡張を有効にする 

    printer1

    プリンタ名を指定する 

  3. 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

    作成または更新するファイルを指定する 

例 - NIS を使用して、ドメイン単位のアクセスをプリンタに追加する

この例は、印刷サーバー 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+ を使用して、ドメイン単位のアクセスをプリンタに追加する

NIS+ マスターサーバー上で lpset コマンドを実行します。プリンタ構成情報を XFN 経由で NIS+ に追加するには、lpset(1M)fns(5) のマニュアルページを参照してください。

  1. NIS+ マスターサーバー上でスーパーユーザーになります。

  2. (省略可能) FNS が初期化されていない場合、NIS+ ルートドメイン用のルート組織コンテキストと下位コンテキストを作成します。

    # fncreate -t org org//
    
  3. NIS+ マップを作成します。

    # lpset -n fns -a bsdaddr=server1,printer1,extensions printer1
    
    -n fns

    FNS コンテキストを作成または更新する 

    -a bsdaddr=server1,printer1,extensions

    印刷サーバーとプリンタ宛先を追加して、Solaris プロトコル拡張を有効にする 

    printer1

    プリンタ名を指定する 

例 - NIS+ を使用して、ドメイン単位のアクセスをプリンタに追加する

この例は、印刷サーバー saturn に接続されているプリンタ luna 用の printers.conf エントリを作成しています。

# lpset -n fns -a bsaddr=saturn,luna,Solaris -a description="Room 1954 ps" luna

印刷クライアントの既存のプリンタへのアクセスを有効にする

サイトにある既存のプリンタを含む /etc/printers.conf のマスターファイルを作成すると、次の 2 つの方法で、すべての印刷クライアントが既存のプリンタにアクセスできるようになります。

/etc/printers.conf ファイルを使用して、NIS にロードする方法

  1. NIS マスターサーバーにコピーする /etc/printers.conf ファイルを持つシステムにスーパーユーザーとしてログインします。

  2. そのシステムの /etc/printers.conf ファイルを NIS マスターサーバーの /etc ディレクトリにコピーします。

  3. /usr/lib/print/Makefile.yp を NIS マスターサーバーの /var/yp ディレクトリにコピーします。

  4. NIS マスターサーバーにスーパーユーザーとしてログインします。

  5. このシステム上で、ファイルを処理する方法を指定します。

    # 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

    作成または更新するファイルを指定する 

/etc/printers.conf ファイルを使用して、NIS+ にロードする方法

  1. NIS+ の admin グループのメンバーであることを確認します。次の作業を行うには、適切な特権が必要です。

  2. NIS+ マスターファイルにコピーする /etc/printers.conf ファイルを持つシステムにスーパーユーザーとしてログインします。

  3. システムの /etc/printers.conf ファイルを NIS+ マスターファイルにコピーします。

    # fncreate_printer -f /etc/printers.conf thisorgunit/service/printer
    

    このコマンドの入力方法については、『Federated Naming Service Programming Guide』を参照してください。

次に進む手順

印刷クライアントに既存のプリンタへのアクセスを与えた後、ユーザーは自分のホームディレクトリにある .printers ファイルにプリンタ別名を設定できます。設定手順については、次の節を参照してください。

.printers ファイルの設定

プリンタ情報をカスタマイズする必要がなければ、ユーザーのホームディレクトリに .printers ファイルを設定する必要はありません。しかし、.printers ファイルは、ユーザーが独自のカスタムプリンタ別名を設定できる場所です。別名 _default を使用すれば、デフォルトのプリンタを設定できます。また、特殊別名 _all を設定すれば、印刷要求を取り消したりプリンタの情報をチェックしたりするときの対象となるプリンタのリストを定義できます。

LP コマンドは、ネームサービスをチェックする前に、ユーザーのホームディレクトリにプリンタ構成情報があるかどうかをチェックすることを覚えておいてください。つまり、ユーザーのプリンタ構成ファイルを設定することによって、ネームサービスの共有情報ではなく、カスタムプリンタ情報を使用できます。

.printers ファイルの詳細は、printers(4) のマニュアルページを参照してください。

(省略可能) .printers ファイルを設定する方法

  1. スーパーユーザーとしてシステムにログインします。

  2. 任意のエディタで、.printers ファイルをユーザーのホームディレクトリに作成します。

  3. (省略可能) _default 別名を設定して、特定のプリンタをデフォルトプリンタに指定します。次の例に示すようなエントリを使用します。

    _default printer_name
    
  4. (省略可能) _all 別名を設定して、印刷要求を取り消したりプリンタの状態をチェックしたりするときの対象となるプリンタを定義します。次の例に示すようなエントリを使用します。

    _all printer1 printer2 printer3
    
  5. そのファイルを .printers として保存します。

ネットワークプリンタの追加

「ネットワークプリンタ」とは、印刷サーバーに接続せずに印刷クライアントに印刷サービスを提供するハードウェアデバイスのことです。ネットワークプリンタは専用のシステム名と IP アドレスを持ち、ネットワークに直接接続されます。ネットワークプリンタが印刷サーバーに接続されていない場合でも、専用の印刷サーバーを設定しておく必要があります。印刷サーバーは、ネットワークプリンタの待ち行列化機能と印刷管理機能を提供します。

1 つ以上の独自のプロトコルを使用するので、ネットワークプリンタは、ベンダー提供の印刷プログラムが必要です。ベンダーから提供される印刷プログラムの設定手順は、それぞれ異なることがあります。プリンタにベンダー提供サポートが付いていない場合は、ネットワークプリンタサポートを使用できます。可能な限りプリンタベンダー提供のソフトウェアを利用することを強く推奨します。

ベンダーは、SVR4 プリンタインタフェーススクリプトを提供して標準プリンタインタフェーススクリプトを置き換えている場合があります。その場合、SVR4 インタフェーススクリプトはベンダー提供の印刷プログラムを呼び出して、ジョブをプリンタに送ります。このスクリプトが提供されない場合は、標準インタフェーススクリプトを変更してベンダー提供の印刷プログラムを呼び出す必要があります。この作業は、標準インタフェーススクリプトのプリンタごとのコピーをベンダー提供の印刷プログラムを呼び出すように編集することで実行できます。

ネットワークプリンタ構成で使用する用語を説明します。

ネットワークプリンタ用のプリンタベンダー提供のソフトウェア

多くの場合、ネットワークプリンタには、プリンタベンダー提供のソフトウェアサポートが提供されます。プリンタにプリンタベンダー提供のソフトウェアがある場合は、プリンタベンダー提供のソフトウェアを利用することを強く推奨します。プリンタベンダー提供のソフトウェアは、そのプリンタの特性をサポートするように設計されていて、プリンタの能力をフルに活用します。プリンタのマニュアルをよく読んで、プリンタを LP 印刷システムにインストールおよび構成してください。

Sun のネットワークプリンタのサポート

ネットワークプリンタベンダーがソフトウェアサポートを提供していない場合、Sun が提供するソフトウェアを利用できます。このソフトウェアは、ネットワークプリンタの汎用サポートを提供するもののため、必ずしもプリンタで利用できるすべての機能を使用できません。

ネットワークプリンタを追加するための一般的な説明については、第 3 章「プリンタの設定手順」を参照してください。次は、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]

例 1 - ポート指定 (番号) 付きネットワークプリンタアクセス名

TCP の共通ポート指定は 9100 です。プリンタノード名が pn1 で、プリンタベンダーがそのポートを 9100 と定義していた場合、プリンタアクセス名は pn1:9100 になります。この場合にプリンタを構成するには、次のコマンドを使用します。

lpadmin -p printer_name -o dest=pn1:9100

例 2 - ポート指定 (名前) 付きネットワークプリンタアクセス名

BSD プロトコルを使用するとき、ポート指定は番号でなく、プリンタベンダーが定義した名前です (例: xxx_parallel_1)。プリンタノード名が cardboard の場合、プリンタアクセス名は cardboard:xxx_parallel_1 になります。この場合プリンタを構成するには、次のコマンドを使用します。

lpadmin -p printer_name -o dest=cardboard:xxx_parallel_1

例 3 - ポート指定なしのネットワークプリンタアクセス名

ポート指定がなく、プリンタノード名が 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

プリンタベンダー提供のツールを使用してネットワークプリンタを追加する方法

  1. プリンタをネットワークに接続し、電源を入れます。

    ハードウェアのスイッチとケーブルの要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。これは、ネットワークにノードを追加することと同じです。

  2. プリンタのマニュアルに従って、SVR4 LP 印刷スプーラのある SunOS 5.7 システムにネットワークプリンタを追加します。

    プリンタのマニュアルを使用して、ネットワークプリンタを構成してください。手順は、ベンダーやプリンタに固有です。

  3. 新しいプリンタへのアクセスをクライアントに追加します。

    これでプリンタは追加されました。プリンタへのアクセスをクライアントに作成します。詳細は、「印刷クライアントの設定」を参照してください。

  4. オプションの作業を完了します。

    ネットワークプリンタを設定するときは、オプションの作業がいくつかあります。残りの作業の参照先については、「印刷の設定の作業マップ」を参照してください。

LP コマンドを使用して、ネットワークプリンタを追加する方法


注 -

ここでは、ネットワークプリンタサポートソフトウェアを使用して、ネットワークプリンタを設定するのに必要な手順を説明しています。このソフトウェアを使用するのは、プリンタにベンダー提供のソフトウェアが付いていない場合だけです。


  1. プリンタをネットワークに接続して、プリンタの電源を入れます。

    ハードウェアのスイッチとケーブル接続の要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。これは、ネットワークにノードを追加することと同じです。

  2. ネットワークプリンタを構成するのに必要な情報を収集します。

    • プリンタ名

    • プリンタサーバー

    • ネットワークプリンタアクセス名

    • プロトコル

    • タイムアウト

    詳細は、「ネットワークプリンタの追加」に説明されている用語を参照してください。

  3. lpadmin(1M) コマンドを使用して、プリンタ名、デバイス、プリンタタイプ、および内容形式を定義します。

    1. プリンタ名とプリンタが使用するポートデバイスを定義します。

      # lpadmin -p printer-name -v /dev/null
      

      使用するデバイスは /dev/null です。

    2. プリンタが使用するインタフェースを指定します。

      # lpadmin -p printer-name -i /usr/lib/lp/model/netstandard 
      

      ネットワークプリンタサポートソフトウェアで提供されるインタフェーススクリプトは /usr/lib/lp/model/netstandard です。

    3. プリンタ宛先、プロトコル、およびタイムアウト値を設定します。

      # 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
      

      プリンタへの接続の試行間で待機する秒数を表す再試行タイムアウト値を設定する。詳細は、「ネットワークプリンタの追加」を参照

    4. プリンタのファイル内容形式とプリンタタイプを指定します。

      # lpadmin -p printer-name -I content-type -T printer-type
      
  4. lpfilter(1M) コマンドを使用して、印刷サーバーにフィルタを追加します。

    #	cd /etc/lp/fd
    # for filter in *.fd;do
        > name=`basename $filter .fd`
        > lpfilter -f $name -F $filter
        > done
    
  5. プリンタがプリンタ要求を受け入れて、その要求を印刷できるようにします。

    # accept printer-name
    #	enable printer-name
    
  6. lpstat(1M) コマンドを使用して、プリンタが正しく構成されていることを確認します。

    #	lpstat -p printer-name
    
  7. 新しいプリンタへのアクセスをクライアントに追加します。

    これでプリンタは追加されました。プリンタへのアクセスをクライアントに作成します。詳細は、「印刷クライアントの設定」を参照してください。

  8. オプションの作業を完了します。

    プリンタを設定するときは、オプションの作業がいくつかあります。残りの作業の参照先については、「印刷の設定の作業マップ」を参照してください。

この例のコマンドは、印刷サーバーで実行しなければなりません。この例では次の情報を使用していますが、これらの情報は状況によって異なります。

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 Jun 16 10:25 1998. 
available.

1. プリンタ名を定義する。デバイスを /dev/null に設定する。

2. ネットワークプリンタ用のインタフェーススクリプトを定義する。

3. 宛先、プロトコル、およびタイムアウトを設定する。

4. プリンタが直接印刷できるファイル内容形式とプリンタタイプを指定する。

5. 印刷フィルタを印刷サーバーに追加する。

6. プリンタが印刷要求を受け入れて、印刷できるようにする。

7. プリンタの説明を追加する。

8. プリンタが用意できていることを確認する。

第 4 章 プリンタの管理手順

この章では、プリンタを管理する手順について説明します。この章で説明する手順は次のとおりです。

印刷と LP 印刷サービスの概要については、第 1 章「印刷管理の概要」を参照してください。

プリンタと印刷スケジューラの管理

この節では、プリンタと印刷スケジューラを管理するために日常的に行う作業について説明します。

プリンタとプリンタアクセスの削除

プリンタの交換が必要な場合や、プリンタを別の場所に移動したい場合は、印刷サーバーから物理的に削除する前に、LP 印刷サービスからプリンタ情報を削除しなければなりません。また、プリンタ上の現在の印刷要求がすべて印刷されるか、別のプリンタに移動して印刷されるかを確認する必要があります。

プリンタ情報を印刷サーバーから削除するだけでなく、印刷クライアントまたはネットワークネームサービスからも削除する必要があります。印刷サーバーからローカルプリンタを削除する場合は、印刷クライアントまたはネットワークネームサービスからリモートプリンタエントリを削除する必要があります。プリンタを別の印刷サーバーに移動する場合は、印刷クライアントまたはネットワークネームサービスから古いリモート印刷エントリを削除し、リモートプリンタへのアクセスを新しい位置に追加する必要があります。

ローカルとリモートのプリンタの削除方法については、「プリンタとリモートプリンタへのアクセスを削除する方法」を参照してください。Admintool を使用して、ローカルまたはリモートプリンタを削除できます。ただし、Admintool では、待ち行列に入っている印刷要求を別のプリンタに移動できません。

プリンタとリモートプリンタへのアクセスを削除する方法

  1. 削除したいプリンタへアクセスできる印刷クライアントに、スーパーユーザーまたは lp としてログインします。

  2. 印刷クライアントからプリンタに関する情報を削除します。

    print-client# lpadmin -x printer-name
    
    -x

    指定したプリンタを削除する 

    printer-name

    削除したいプリンタ名 

    指定したプリンタに関する情報が、印刷クライアントの /etc/lp/printers ディレクトリから削除されます。

  3. 印刷クライアントが同じ印刷サーバー上の別のプリンタを使用しない場合は、その印刷サーバーに関する情報を印刷クライアントから削除します。

    print-client# lpsystem -r print-server
    
    -r

    指定した印刷サーバーを削除する 

    print-server

    削除したい印刷サーバー名 

    印刷サーバーが、印刷クライアントの /etc/lp/Systems ファイルから削除されます。

  4. プリンタへアクセスできる各印刷クライアント上で、手順 2 から 手順 3 までを繰り返します。

  5. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  6. プリンタ上で印刷要求を停止します。

    print-server# reject printer-name
    
    reject printer-name
    

    指定したプリンタの印刷要求を拒否する 

    この手順を実行すると、プリンタの削除処理中は、そのプリンタの待ち行列に新しい要求が入らなくなります。詳細は、「プリンタへの印刷要求を受け付けるまたは拒否する方法」を参照してください。

  7. プリンタを停止します。

    print-server# disable printer-name
    

    この手順を実行すると、印刷要求の印刷は停止されます。印刷を停止する方法については、「プリンタを使用可能または使用不可にする方法」を参照してください。

  8. 待ち行列に残っている印刷要求がある場合は、別のプリンタに移動します。

    印刷要求を別のプリンタに移動する方法については、「印刷要求を別のプリンタに移動する方法」を参照してください。

  9. プリンタを印刷サーバーから削除します。

    print-server# lpadmin -x printer-name
    

    プリンタの構成情報が、印刷サーバーの /etc/lp/printers ディレクトリから削除されます。

  10. 削除したばかりのプリンタを使用していた印刷クライアントが、まだ印刷サーバー上で別のプリンタを使用中でなければ、その印刷クライアントに関する情報を削除します。

    print-server# lpsystem -r print-client1 [,print-client2...]
    
    -r

    指定した印刷サーバーを削除する 

    print-client

    印刷サーバーから削除したい印刷クライアント名。このコマンドで複数の印刷クライアントを指定できる。印刷クライアント名を区切るには空白またはコンマを使用する。空白を使用する場合は、印刷クライアントのリストを引用符で囲む 

    指定した印刷クライアントが、印刷サーバーの /etc/lp/Systems ファイルから削除されます。

  11. プリンタ情報が削除されていることを確認します。

    1. 印刷クライアント上でプリンタ情報が削除されていることを確認します。

      print-client$ lpstat -p printer-name -l
      

      上記のコマンドの出力で、プリンタが存在しないことを示すエラーが表示されます。

    2. 印刷サーバー上でプリンタ情報が削除されていることを確認します。

      print-server$ lpstat -p printer-name -l
      

      上記のコマンドの出力で、プリンタが存在しないことを示すエラーが表示されます。

例 - プリンタとリモートプリンタへのアクセスを削除する

次の例では、コマンドは印刷クライアント 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 印刷サービスや特定のプリンタに関する状態情報を調べることができます。

プリンタの状態をチェックする方法

  1. ネットワーク上の任意のシステムにログインします。

  2. lpstat コマンドを使用してプリンタの状態をチェックします。

    ここには、最も一般的に使用するオプションのみを掲載してあります。他のオプションについては、lpstat(1) のマニュアルページを参照してください。

    $ lpstat [-d] [-p printer-name [-D] [-l]] [-t]
    -d
    

    システムのデフォルトプリンタが表示される 

    -p printer-name
    

    プリンタが使用可能かアイドル状態か、いつ使用可能または使用不可になったか、および印刷要求を受け付けているかどうかが表示される。 

    このコマンドで複数の印刷クライアントを指定できる。印刷クライアント名を区切るには空白またはコンマを使用する。空白を使用する場合は、印刷クライアントのリストを引用符で囲む。printer-name を指定しなければ、すべてのプリンタの状態が表示される

    -D
    

    指定した printer-name の記述が表示される

    -l
    

    指定した printer-name の特性が表示される

    -t
    

    すべてのプリンタの状態、使用可能かどうか、印刷要求を受け付けているかどうかなど、LP 印刷サービスに関する状態情報が表示される 

例 - プリンタの状態をチェックする

次の例では、コマンドはシステムのデフォルトプリンタ名を表示します。

$ lpstat -d
system default destination: luna

次の例では、コマンドはプリンタ luna の状態を表示します。

$ lpstat -p luna
printer luna is idle. enabled since Jun 16 10:09 1998. available.

次の例では、コマンドはプリンタ asteroidluna の記述を表示します。

$ lpstat -p "asteroid luna" -D
printer asteroid faulted. enabled since Jun 16 10:09 1998. available.
	unable to print: paper misfeed jam
 
	Description: Printer by break room.
printer luna is idle. enabled since Jun 16 10:09 1998. available.
	Description: Printer by server room.

次の例では、コマンドはプリンタ luna の特性を表示します。

$ lpstat -p luna -l
printer luna is idle. enabled since Jun 16 10:11 1998. 
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 コマンドを使用できます。印刷スケジューラが動作を停止するときに印刷要求が印刷中だった場合は、印刷スケジューラを再起動すると、その印刷要求全体が印刷されます。

印刷スケジューラを停止する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. 印刷スケジューラが動作しているかどうかをチェックします。

    # lpstat -r
    

    印刷スケジューラが動作していない場合は、「scheduler is not running」というメッセージが表示されます。

  3. 印刷スケジューラが動作している場合は停止します。

    # /usr/lib/lp/lpshut
    

印刷スケジューラを再起動する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. 印刷スケジューラが動作しているかどうかをチェックします。

    # lpstat -r
    

    印刷スケジューラが動作していない場合は、「scheduler is not running」というメッセージが表示されます。

  3. 印刷スケジューラが動作していない場合は起動します。

    # /usr/lib/lp/lpsched
    

その他のプリンタ定義の設定とリセット

この節では、プリンタ定義の設定またはリセットの手順を説明します。次のプリンタ定義の一部は、Admintool または Solstice プリンタマネージャを使用して設定できます。次の手順では、迅速にプリンタ定義を設定またはリセットするために、lp コマンドを使用しています。

プリンタ記述を追加する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin(1M) コマンドを使用してプリンタ記述を追加します。

    # lpadmin -p printer-name -D "comment"
    p printer-name
    

    記述を追加するプリンタ名 

    -D "comment"
    

    設置場所や管理担当者など、プリンタの特性を指定する。シェルが解釈する文字 (*?¥!^ など) は、一重引用符で囲む

    プリンタ記述は印刷サーバーの /etc/lp/printers/printer-name/comment ファイルに追加されます。

  3. Description 情報をチェックします。

    $ lpstat -p printer-name -l
    

例 - プリンタ記述を追加する

次の例では、コマンドはプリンタ luna のプリンタ記述を追加します。

# lpadmin -p luna -D "Nathans office"

デフォルトプリンタの指定

印刷コマンドを使用するときにプリンタ名を入力しなくてもすむように、システムのデフォルトプリンタを指定できます。あるプリンタをデフォルトとして指定する前に、そのプリンタをシステム上の印刷サービスに認識させなければなりません。次のいずれかを設定すれば、システムのデフォルトプリンタを設定できます。

アプリケーションがプリンタを指定する場合は、システムのデフォルトプリンタを設定したかどうかに関係なく、その出力先が印刷サービスに使用されます。アプリケーションにプリンタの出力先がない場合や、印刷コマンドの使用時にプリンタ名が指定されていない場合は、印刷コマンドはデフォルトプリンタを特定の順序で検索します。表 4-1 は、システムのデフォルトプリンタの検索順序を示しています。

表 4-1 デフォルトプリンタの検索順序

検索順序 

/usr/bin/lp コマンドを使用

SunOS/BSD 互換コマンド (lprlpq、または lprm) を使用

LPDEST 変数

PRINTER 変数

PRINTER 変数

LPDEST 変数

システムのデフォルトプリンタ 

システムのデフォルトプリンタ 

システムのデフォルトプリンタを設定する方法

  1. デフォルトプリンタを設定したいシステムにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用してシステムのデフォルトプリンタを設定します。

    # lpadmin -d [printer-name]
    -d printer-name
    

    システムのデフォルトプリンタとして割り当てるプリンタ名。printer-name を指定しなければ、システムはデフォルトプリンタなしで設定される

    デフォルトプリンタ名がシステムの /etc/lp/default ファイルに入力されます。

  3. lpstat コマンドを使用して、システムのデフォルトプリンタをチェックします。

    $ lpstat -d
    

例 - システムのデフォルトプリンタを設定する

次の例では、プリンタ luna をシステムのデフォルトプリンタとして設定します。これは、LPDEST または PRINTER 環境変数が設定されていない場合、luna がシステムのデフォルトプリンタとして使用されることを意味します。

# lpadmin -d luna
# lpstat -d
system default destination: luna

バナーページの印刷

バナーページには、印刷要求を出したユーザー、印刷要求 ID、要求の印刷時期が出力されます。また、バナーページには、ユーザーがプリントアウトを識別しやすいように変更可能なタイトルを付けることもできます。

バナーページは、印刷ジョブの所有者を簡単に識別できるようにします。これは、多数のユーザーが同じプリンタにジョブを依頼するときに特に便利です。ただし、バナーページを印刷すると用紙の消費量が増えますが、1 台のプリンタを使用するユーザーが少ない場合は必要ないことがあります。また場合によっては、バナーページを印刷しない方がよいこともあります。たとえば、プリンタに支払い小切手などの特殊な用紙やフォームが装着されている場合は、バナーページを印刷すると問題が起きることがあります。

デフォルトでは、印刷サービスはバナーページを強制的に印刷します。ただしユーザーは、印刷要求を出すときにバナーページの印刷をオフにするかどうかを選択できます。この選択肢は lpadmin コマンドまたは Admintool を通じて設定できます。ユーザーが選択できるようにする場合、ユーザーがバナーページの印刷をオフに切り替えるには、-o nobanner オプションを使用する必要があります。

また、プリンタのバナーページをオフにして印刷できないようにすることもできます。これは、バナーページが不要な状況では重要です。バナーページの印刷は、コマンド行インタフェースからでなければオフにできません。詳細は、「バナーページをオフにする方法」を参照してください。

バナーページをオプションにする方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用してバナーページをオプションにします。

    # lpadmin -p printer-name -o nobanner
    
    -p printer-name
    

    バナーページをオプションにするプリンタ名 

    -o nobanner 
    

    ユーザーが印刷要求を出すときにバナーページなしを指定できるようにする 

    すべての印刷要求でバナーページを強制的に印刷させたい場合は、-o banner オプションを指定します。

    バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。

  3. 次のコマンドの出力には、「Banner not required」という行が入っています。

    $ lpstat -p printer-name -l
    

例 - バナーページをオプションにする

次の例では、コマンドはユーザーがプリンタ luna 上でバナーページなしを要求できるようにします。

# lpadmin -p luna -o nobanner

バナーページをオフにする方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. ディレクトリを /etc/lp/interfaces ディレクトリに変更します。

    # cd /etc/lp/interfaces
    
  3. バナーページをオフにしたいプリンタ名が付いているファイルを編集します。

  4. nobanner 変数を yes に変更します。

    nobanner="yes"

    バナーページを再びオンにする場合は、nobanner 変数を no に変更します。

    バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。

  5. プリンタに印刷要求を出して、バナーページが印刷されないことを確認します。

プリンタクラスの設定

印刷サービスを使用すると、複数のローカルプリンタを 1 つのクラスにグループ化できます。この作業は、lpadmin -c コマンドを使用しなければ実行できません。

プリンタクラスを設定すると、ユーザーは印刷要求の出力先として (個々のプリンタではなく) そのクラスを指定できます。そのクラスで空いている最初のプリンタが印刷に使用されます。その結果、プリンタはできる限りビジーに保たれるので、応答時間が短縮されます。

印刷サービスに認識されるデフォルトのプリンタクラスはなく、定義したプリンタクラスのみが存在することになります。プリンタクラスを定義するには、次の 3 つの方法があります。

また、1 つのクラスには特定の順序で使用される複数のプリンタを含めることができます。LP 印刷サービスでは、常に各プリンタがクラスに追加された順番に従って利用できるプリンタをチェックします。したがって、最初に高速プリンタにアクセスしたい場合は、高速プリンタを低速プリンタよりも先にクラスに追加します。その結果、高速プリンタで最大限の印刷要求が処理されることになります。低速プリンタは、高速プリンタが使用されているときのバックアッププリンタとして確保されます。


注 -

印刷要求の負荷は、ローカルプリンタのクラス内のプリンタ間でのみ調整されます。


クラス名も、プリンタ名と同様に固有の名前でなければなりません。クラス名は 14 文字以内の英数字で、下線を使用できます。

プリンタクラスは定義しなくてもかまいません。プリンタクラスを使用するとネットワーク上のユーザーに利点があると判断した場合にのみ、クラスを追加してください。

プリンタのクラスを定義する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用して、プリンタのクラスを定義します。

    # lpadmin -p printer-name -c printer-class
    
    -p printer-name
    

    プリンタのクラスに追加するプリンタ名 

    -c printer-class
    

    プリンタのクラス名 

    指定したプリンタが、印刷サーバーの /etc/lp/classes/printer-class ファイル内でそのクラスのリストの最後に追加されます。プリンタクラスが存在しない場合は、作成されます。

  3. lpstat コマンドを使用して、プリンタクラスのプリンタを表示します。

    $ lpstat -c printer-class
    

例 - プリンタのクラスを定義する

次の例では、コマンドはプリンタ luna をクラス roughdrafts に追加します。

# lpadmin -p luna -c roughdrafts

障害の通知の設定

事前に選択しておくと、印刷サービスはプリンタ障害を検出したときに通知できます。次のいずれかの方法を選択すると、lpadmin -A コマンドまたは Admintool を使用してプリンタ障害通知を受け取ることができます。

ただし、lpadmin -A コマンドを使用すると、他にも選択したプログラムで指定されるメッセージをオプションとして受信できます。また、すでに知っているエラーに関する通知をオフにすることもできます。

障害通知を配信するプログラムを指定しなければ、障害警告の内容は事前に定義済みのメッセージです。このメッセージは、プリンタが印刷を停止しており、解決が必要であることを示します。

表 4-2 は、lpadmin -A コマンドでプリンタに設定できる警告値を示しています。これらの警告値は、印字ホイール、フォントカートリッジ、フォームについても設定できます。

表 4-2 印刷障害の警告値

-A alert の値

説明 

'mail [user-name]'

警告メッセージを印刷サーバー上の root か lp、またはユーザー名として指定した user-name に電子メールで送信する

'write [user-name]'

警告メッセージを印刷サーバー上の root か lp のコンソールウィンドウ、またはユーザー名として指定した user-name のコンソールウィンドウに送信する。指定したユーザーが警告メッセージを受け取るには、印刷サーバーにログインしていなければならない

'コマンド'

警告ごとに command ファイルを実行する。環境変数とカレントディレクトリは、ファイルの実行の前後で保存復元される

quiet

障害が解決されるまで警告を停止する。この値は、ユーザー (root または指定したユーザー) が繰り返し警告を受け取るときに使用する 

none

警告を送信しない。プリンタの障害警告を指定しない場合は、これがデフォルト値である 

プリンタの障害警告を設定する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用してプリンタの障害警告を設定します。

    # lpadmin -p printer-name -A alert [-W minutes]
    -p printer-name
    

    プリンタ障害の警告を指定するプリンタ名 

    -A alert
    

    プリンタ障害が起きたときに出される警告の種類を指定する。alert に有効な値については、表 4-2 を参照。有効な値は mailwritequiet などである

    -W minutes
    

    障害警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送信される 

    障害警告の設定は、印刷サーバーの /etc/lp/printers/printer-name/alert.sh ファイルに入力されます。

  3. 次のコマンドの出力から、「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 コマンドを使用してプリンタを使用可能にします。

表 4-3 は、lpadmin -F コマンドでプリンタに設定できる障害回復値を示しています。

表 4-3 プリンタ障害回復の値

-F recover-options の値

説明 

beginning

障害回復後に、ファイルの先頭から印刷を再開する 

continue

障害回復後に、印刷が停止されたページの先頭から印刷を開始する。この回復オプションには印刷フィルタが必要

wait

障害回復後に、プリンタを使用可能にするまで印刷が停止される。(enable コマンドで) プリンタを使用可能にすると、印刷は停止されたページの先頭から始まる。この回復オプションには印刷フィルタが必要

プリンタの障害回復を設定する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin(1M) コマンドを使用してプリンタ障害から回復する方法を設定します。

    # lpadmin -p printer-name -F recovery-options
    
    -p printer-name
    

    障害からの回復方法を指定するプリンタ名 

    -F recovery-options
    

    beginningcontinuewait の 3 つの有効な回復オプション。recovery-options に有効な値については、表 4-3 を参照

    障害回復の設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。

  3. 次のコマンドの出力から、「After fault」見出しに続く情報をチェックします。

    $ lpstat -p printer-name -l
    

例 - プリンタの障害回復を設定する

次の例では、コマンドは、印刷が停止されたページの先頭から再開するようにプリンタ luna を設定します。

# lpadmin -p luna -F continue

プリンタへのユーザーアクセスを制限する

利用できるプリンタの一部またはすべてにアクセスできるユーザーを制限する必要がある場合があります。たとえば、一部のユーザーが高品質プリンタ上で印刷できないようにして経費を抑えることができます。プリンタへのユーザーアクセスを制限するには、印刷サーバー上で lpadmin -u コマンドを使用して「許可」リストと「拒否」リストを作成できます (Admintool を使用すると、許可リストのみを作成できます)。どちらのリストも作成しなければ、プリンタはそこにアクセスできる全ユーザーが利用できます。

許可リストには、指定したプリンタへのアクセスを許可されるユーザー名が入っています。拒否リストには、指定したプリンタへのアクセスを拒否されるユーザー名が入っています。

許可リストと拒否リストには、次の規則が適用されます。

リストの状態 

アクセスの制限 

許可リストも拒否リストも作成しない、または両方のリストが空 

全ユーザーがそのプリンタを使用できる 

許可リストで all を指定する

そのプリンタには全ユーザーがアクセスできる 

拒否リストで all を指定する

サーバー上の lp と root 以外の全ユーザーのアクセスが拒否される

許可リストにエントリを作成する 

リストに指定されているユーザーだけがプリンタにアクセスできる。拒否リストは無視される 

拒否リストを作成し、許可リストは作成しないか許可リストを空にする 

拒否リストで指定されたユーザーはプリンタにアクセスできない 

実際にプリンタへのアクセスを制御しているのは印刷サーバーなので、許可リストと拒否リストを作成できるのは印刷サーバー上でだけです。許可リストと拒否リストを作成した場合、印刷サーバーは、プリンタへのユーザーアクセスを排他的に制御します。

表 4-4 は、プリンタへのユーザーアクセスを制限するために許可リストまたは拒否リストに追加できる値を示しています。

表 4-4 許可リストと拒否リストの値

user-list の値

説明 

user

任意のシステム上の特定ユーザー 

all

すべてのシステム上の全ユーザー 

none

すべてのシステム上の全ユーザーが該当しない 

system!user

特定システム上の特定ユーザー 

!user

ローカルシステム上の特定ユーザー 

all!user

任意のシステム上の特定ユーザー 

all!all

すべてのシステム上の全ユーザー 

system!all

特定システム上の全ユーザー 

!all

ローカルシステム上の全ユーザー 

プリンタへのユーザーアクセスを制限する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用して、プリンタへのユーザーアクセスを許可または拒否します。

    # lpadmin -p printer-name -u allow:user-list [deny:user-list]
    -p printer-name
    

    許可または拒否ユーザーアクセスリストを適用するプリンタ名 

    -u allow:user-list
    

    許可ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはコンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。user-list に有効な値については、表 4-4 を参照

    -u deny:user-list
    

    拒否ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはコンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。user-list に有効な値については、表 4-4 を参照

    指定したユーザーが、印刷サーバーの次のファイル内でプリンタの許可または拒否ユーザーアクセスリストに追加されます。

    /etc/lp/printers/printer-name/users.allow

    /etc/lp/printers/printer-name/users.deny


    注 -

    許可ユーザーアクセスリストの user-listnone を指定した場合、印刷サーバー用に次のファイルは作成されません。

    /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


  3. 次のコマンドの出力から、「Users allowed」または「Users denied」見出しに続く情報をチェックします。

    $ lpstat -p printer-name -l
    

例 - プリンタへのユーザーアクセスを制限する

次の例で、コマンドはユーザー nathangeorge によるプリンタ luna へのアクセスのみを許可します。

# lpadmin -p luna -u allow:nathan,george

次の例で、コマンドはユーザー nathangeorge によるプリンタ asteroid へのアクセスを拒否します。

# lpadmin -p asteroid -u deny:"nathan george"

印刷要求の管理

ユーザーが印刷クライアントから印刷要求を出すと、その印刷要求は印刷サーバー上の待ち行列に追加されてからプリンタに送信されます。印刷要求が待ち行列に入っている間は、クライアントシステムからの要求で取り消したり、その状態情報を取得したりできます。印刷要求の移動、停止、再開または優先度の変更などを実行するには、印刷サーバーにログインしなければなりません。これらの動作によって、印刷サービスを絶えずスムーズに機能させることができます。

印刷コマンドを使用すると、あらゆる印刷要求の管理作業を実行できます。Admintool を使用すると、印刷サーバーを変更するときに一部の印刷要求の管理作業を実行できます。表 4-5 は、Admintool で実行できる印刷要求の管理作業を示しています。

表 4-5 Admintool による印刷要求の管理

作業 

Admintool で実行できるか 

印刷要求の取り消し 

実行できない 

印刷要求の移動 

実行できない 

印刷要求の優先順位の変更 

実行できない 

印刷要求の受け付けまたは拒否 

実行できる 

印刷の処理または停止 

実行できる 

表 4-6 は、lp -H コマンドを使用して印刷要求の優先順位を変更するための値を示しています。

表 4-6 印刷要求の優先順位を変更する値

-H change-priority の値

説明 

-hold

ユーザーが取り消すか、LP 印刷サービスに要求の印刷再開を指示するまで、印刷要求を停止する 

-resume

停止されていた印刷要求を待ち行列に戻す。印刷要求は、優先順位と待ち行列内での位置に従って印刷される。すでに印刷中の印刷ジョブを停止すると、resume は印刷要求が次に印刷される要求になるように待ち行列の先頭に配置する

-immediate

印刷要求を待ち行列の先頭に配置する。要求がすでに印刷中であれば、次の要求をすぐに印刷できるように、印刷中の要求を停止する 

印刷要求の状態をチェックする方法

  1. ネットワーク上の任意のシステムにログインします。

  2. lpstat コマンドを使用して、プリンタと印刷要求の状態をチェックします。

    ここには、最も一般的に使用するオプションだけを掲載してあります。他の有効なオプションについては、lpstat(1) のマニュアルページを参照してください。

    $ lpstat -o [list] | -u [user-list]

    -o list

    特定のプリンタの印刷要求の状態が表示される。list には、1 つ以上のプリンタ名、プリンタクラス名、または印刷要求 ID を指定できる。

    list には、複数のプリンタ名、クラス名、ID を指定できる。値を区切るには空白またはコンマを使用する。空白を使用する場合は、値のリストを引用符で囲む。

    list を指定しなければ、すべてのプリンタへの印刷要求の状態が表示される

    -u user-list

    特定のユーザーの印刷要求の状態が表示される。user-list には 1 人以上のユーザー名を指定できる。

    このコマンドで複数のユーザーを指定できる。ユーザー名を区切るには空白またはコンマを使用する。空白を使用する場合は、ユーザー名のリストを引用符で囲む。 

    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(1) コマンドと disable(1) コマンド、または Admintool の「プリンタの変更 (Modify Printer)」ウィンドウの「印刷要求処理 (Process Print Requests)」フィールドを使用すると、プリンタが待ち行列に入っている要求の印刷を処理または停止するかを制御できます。プリンタを使用不可にすると、プリンタは待ち行列内の要求の印刷を停止します。ただし、要求はそのまま待ち行列に追加されます (要求が待ち行列に追加されないように、プリンタを設定して印刷要求を拒否させなければなりません。印刷要求を拒否する方法については、「印刷要求の受け付けまたは拒否」を参照してください)。

プリンタが使用不可になっている場合は、使用可能にしなければなりません。この状態は、プリンタ障害が起きると発生することがあります。プリンタを使用可能にすると、印刷サービスがそれ以後に印刷待ち行列の要求を拒否しても、待ち行列が空になるまで、印刷待ち行列からの要求が印刷されます。

図 4-1 は、プリンタが使用不可になったときに印刷要求の処理が中断される様子を示しています。

図 4-1 プリンタが使用可能または使用不可になる場合

Graphic

プリンタへの印刷要求を受け付けるまたは拒否する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. reject(1M) コマンドを使用して、プリンタで印刷要求を停止します。

    # reject [-r "reason"] printer-name
    
    -r "reason"
    

    プリンタが印刷要求を拒否している理由をユーザーに示す。理由は格納され、ユーザーがプリンタの状態をチェックする (lpstat -p) と表示される

    printer-name

    印刷要求を停止するプリンタ名 

    待ち行列に入れられた要求は、プリンタが使用可能になっている限りそのまま印刷されます。印刷を停止するようにプリンタを使用不可にする手順については、「プリンタを使用可能または使用不可にする方法」を参照してください。

  3. accept(1M) コマンドを使用して、プリンタで印刷要求を受け付けるようにします。

    # accept printer-name
    
  4. 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 コマンドを使用すると、指定したプリンタの印刷待ち行列がオフになり、新しい印刷要求は印刷サーバーの待ち行列に入れなくなります。その待ち行列に入っているすべての印刷要求は、そのまま印刷されます。すでに待ち行列に入っている要求の印刷を停止したい場合は、そのプリンタを使用不可にしなければなりません。表 4-7 では acceptrejectenable、および disable コマンドの機能を比較します。

表 4-7 accept/reject コマンドと enable/disable コマンドの機能

コマンド 

機能 

accept

印刷待ち行列に送信された印刷要求を受け付ける 

enable

印刷待ち行列にある要求を印刷する 

reject

印刷待ち行列に送信された印刷要求を拒否する 

disable

現在印刷待ち行列にある印刷要求を停止する 

プリンタを使用不可にする方法については、「印刷の処理または停止」を参照してください。

印刷要求が拒否されると、印刷サービスはその要求を出したユーザーにメッセージを送り、指定されたプリンタには印刷要求が受け付けられていないことを通知します。

また、要求を受け付けない理由をコマンド行から指定できます。その理由は、ユーザーがプリンタの待ち行列をチェックしようとするとユーザーのシステムに表示されます。図 4-2 は、印刷待ち行列が拒否されたときに印刷要求が中断される様子を示しています。

図 4-2 印刷待ち行列が要求を受け付けるか拒否する場合

Graphic

プリンタを使用可能または使用不可にする方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. disable コマンドを使用して、プリンタ上の印刷要求の印刷を停止します。

    # disable [-c | -W] [-r "reason"] printer-name
    
    disable

    オプションを指定しなければ、現在のジョブを取り消してプリンタを使用不可にする。現在のジョブは保存され、プリンタが使用可能になると再び印刷される

    -c
    

    現在のジョブを取り消してから、プリンタを使用不可にする。現在のジョブが後から印刷されることはない 

    -W
    

    現在のジョブが終了するまで待ってからプリンタを使用不可にする 

    -r "reason"
    

    プリンタが使用不可になった理由をユーザーに示す。理由は格納され、ユーザーがプリンタの状態をチェックする (lpstat -p) と表示される

    printer-name

    印刷要求の印刷を停止するプリンタ名 


    注 -

    プリンタのクラスを使用可能または使用不可にすることはできません。個々のプリンタのみを使用可能または使用不可にすることができます。


  3. enable を使用して、プリンタ上で印刷要求の印刷を開始します。

    # enable printer-name
    
  4. プリンタが使用可能になっていることを確認します。

    $ lpstat -p printer-name
    

例 - プリンタを使用可能または使用不可にする

次の例では、プリンタ luna 上の現在のジョブを停止し、後から印刷できるように保存して、プリンタが印刷要求の印刷を停止した理由を表示します。

# disable -r "changing the form" luna

次の例では、プリンタ luna 上で印刷要求の印刷を開始します。

# enable luna
printer "luna" enabled

印刷要求の取り消し

cancel(1) を使用すると、印刷待ち行列から印刷要求を取り消したり、印刷中のジョブを取り消したりできます。cancel コマンドには、次の 3 つの使用方法があります。

cancel を使用すると、要求が取り消され、待ち行列内の次の要求が印刷されることを示すメッセージが表示されます。次の場合にのみ、印刷要求を取り消すことができます。

特定の要求を取り消すには、その要求 ID を知る必要があります。要求 ID は、luna-185 のように、プリンタ名、ハイフン、印刷要求番号からなっています。印刷要求を依頼すると、その要求 ID が表示されます。印刷要求 ID を忘れた場合は、-o printer オプションを指定して lpstat コマンドを使用すると ID を調べることができます。

印刷要求を取り消す方法

  1. 他のユーザーの印刷要求を取り消す場合は、スーパーユーザーまたは lp になります。

  2. lpstat コマンドを使用して、取り消す印刷要求の要求 ID を判別します。

    詳細は、「印刷要求の状態をチェックする方法」を参照してください。

  3. cancel コマンドを使用して印刷要求を取り消します。

    $ cancel request-id | printer-name
    

    request-id

    取り消す印刷要求の要求 ID。このコマンドで複数の要求 ID を指定できる。要求 ID を区切るには空白またはコンマを使用する。空白を使用する場合は、要求 ID のリストを引用符で囲む

    printer-name

    現在印刷中の印刷要求を取り消したいプリンタを指定する。 

    このコマンドで複数のプリンタ名を指定できる。プリンタ名を区切るには空白またはコンマを使用する。空白を使用する場合は、プリンタ名のリストを引用符で囲む 

  4. 印刷要求が取り消されていることを確認します。

    $ lpstat -o printer-name
    

例 - 印刷要求を取り消す

次の例では、luna-3luna-4 の印刷要求を取り消します。

$ cancel luna-3 luna-4
request "luna-3" cancelled
request "luna-4" cancelled

次の例では、現在プリンタ luna 上で印刷中の印刷要求を取り消します。

# cancel luna
request "luna-9" cancelled

特定のユーザーからの印刷要求を取り消す方法

  1. (省略可能) 他のユーザーの印刷要求を取り消す場合は、スーパーユーザーまたは lp になります。

  2. cancel コマンドを使用して、特定のユーザーからの印刷要求を取り消します。

    $ cancel -u user-list [printer-name]
    -u user-list
    

    特定のユーザーの印刷要求を取り消す。 

    user-list では複数のユーザー名を指定できる。ユーザー名を区切るには空白またはコンマを使用する。空白を使用する場合は、ユーザー名のリストを引用符で囲む

    printer-name

    指定したユーザーの印刷要求を取り消したいプリンタを指定する 

    printer-name では複数のプリンタ名を指定できる。プリンタ名を区切るには空白またはコンマを使用する。空白を使用する場合は、プリンタ名のリストを引用符で囲む

    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(1M) コマンドを使用すると、個々の印刷要求またはすべての印刷要求を別のローカルプリンタに移動できます。

要求 ID は印刷要求を移動しても変更されないので、ユーザーは引き続き各自の要求を調べることができます。新しく指定したプリンタでは満たせない要件 (ファイル内容形式やフォームなど) を持つ印刷要求は移動できません。この種の印刷要求は取り消さなければなりません。

印刷要求を別のプリンタに移動する方法

あるプリンタから別のプリンタにすべての要求を移動する場合は、要求 ID がわからなくてもかまいません。ただし移動する前に、影響を受ける印刷要求の数を調べておくとよいでしょう。

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. (省略可能) 元のプリンタ上で印刷要求の要求 ID をチェックします。

    # lpstat -o printer-name1
    
  3. (省略可能) 宛先プリンタが印刷要求を受け付けているかどうかをチェックします。

    # lpstat -p printer-name2
    
    -p printer-name2
    

    印刷要求の移動先となるプリンタ名 

  4. 元のプリンタから宛先プリンタにすべての印刷要求を移動します。

    # lpmove printer-name1 printer-name2
    

    printer-name1

    すべての印刷要求の移動元となるプリンタ名 

    printer-name2

    すべての印刷要求の移動先となるプリンタ名 

    一部の要求を宛先プリンタ上で印刷できない場合は、元のプリンタの待ち行列内に残ります。要求 ID を使用すると、lpmove コマンドで特定の印刷要求を別のプリンタに移動することもできます。

  5. 元のプリンタ上で印刷要求の受け付けを開始します。

    すべての印刷要求を別のプリンタに移動すると、lpmove コマンドはそのプリンタへの印刷要求の受け付けを自動的に停止します。そのプリンタへの新しい印刷要求の受け付けを開始したい場合は、この手順が必要です。

    # accept printer-name1
    
  6. 次のコマンドを使用して、元のプリンタの待ち行列に残っている印刷要求をチェックします。

    $ lpq -P printer-name1
    

    次のコマンドを使用して、すべての指定した印刷要求が宛先のプリンタ待ち行列に移動していることを確認します。

    $ lpq -P printer-name2
    

例 - 印刷要求を別のプリンタに移動する

次の例では、lpmove コマンドにより印刷要求をプリンタ luna からプリンタ terra へ移動し、accept コマンドによりプリンタ luna に対し印刷要求の受け付けを再開するよう通知します。

# lpmove luna terra
# accept luna

印刷要求の優先順位の変更

印刷要求を出し終わったら、その優先順位を印刷サーバーの待ち行列内で次のように変更できます。

印刷要求の優先順位を変更する方法

  1. 印刷要求を停止中の印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpstat コマンドを使用して、優先順位を変更したい印刷要求の要求 ID を判別します。

    詳細は、「印刷要求の状態をチェックする方法」を参照してください。

  3. lp コマンドを使用して、印刷要求の優先順位を変更します。

    # lp -i request-id -H change-priority
    
    -i request-id
    

    変更したい印刷要求の要求 ID。

    このコマンドで複数の要求 ID を指定できる。空白またはコンマを使用する。空白を使用する場合は、要求 ID のリストを引用符で囲む 

    -H change-priority
    

    印刷要求の優先順位を変更する方法として、holdresumeimmediate のいずれかを指定する。

    change-priority に有効な値については、表 4-6 を参照

    また、lp-q コマンドを使用すると、指定した印刷要求の優先順位を変更できます。優先順位は、最上位の 0 から最下位の 39 までの間で変更できます。

例 - 印刷要求の優先順位を変更する

次の例では、コマンドは要求 ID が asteroid-79 の印刷要求を優先順位 1 に変更します。

# lp -i asteroid-79 -q 1

第 5 章 文字セット、フィルタ、フォーム、フォントの管理手順

この章では、文字セット、印刷フィルタ、フォーム、およびフォントについての基本事項と、設定して管理する手順について説明します

この章で説明する手順は次のとおりです。

印刷については、第 1 章「印刷管理の概要」を参照してください。

文字セットの管理

プリンタでテキストを各種フォント書体で印刷する方法は、それぞれ異なります。たとえば、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 名 (たとえば usasciienglishfinnish など) が返されます。

通常、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 印刷サービスから出す警告を指定するのと同じ方法で、印字ホイールまたはカートリッジを装着する際に出す警告を指定します。警告の概要については、「障害の通知の設定」を参照してください。

印字ホイールとフォントカートリッジを定義する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. プリンタで使用できる印字ホイールまたはフォントカートリッジを定義します。

    print-server# lpadmin -p printer-name -S hard-charset1[,hard-charset2...]
    
    -p printer-name

    プリンタで使用できる印字ホイールまたはフォントカートリッジを定義する 

    -s hard-charset
    

    印字ホイールまたはフォントカートリッジを定義するプリンタ名。 

    印字ホイールまたはフォントカートリッジのプリンタに装着する文字セット名。このコマンドで複数のプリンタに装着する文字セット名を指定できる。文字セット名を区切るには空白またはコンマを使用する。空白を使用する場合は、文字セット名のリストを引用符で囲む。 

    ユーザーにとって意味のある名前を定義して、ユーザーに通知する 

    印字ホイールまたはフォントカートリッジの定義が、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに追加されます。

  3. 印刷サーバーの印刷クライアントであるシステムにスーパーユーザーまたは lp としてログインします。

  4. 印刷クライアントに対して同じ印字ホイールまたはフォントカートリッジを定義します。

    print-client# lpadmin -p printer-name -S hard-charset1[,hard-charset2...]
    

    このコマンドの変数は、手順 2 と同じです。

    印字ホイールまたはフォントカートリッジの定義が、印刷クライアントの /etc/lp/printers/printer-name/configuration ファイルに追加されます。

  5. 印字ホイールまたはフォントカートリッジを使用する必要がある印刷クライアントごとに、手順 3手順 4 を繰り返します。

  6. 印刷サーバーと印刷クライアント上で、次のコマンド出力の「Character sets」見出しの後にある情報を確認します。

    $ lpstat -p printer-name -l
    

例 - 印字ホイールを定義する

次の例は、印刷クライアント asteroid のプリンタ luna 上で印字ホイール pica を定義するコマンドを示しています。

asteroid# lpadmin -p luna -S pica

印字ホイールまたはフォントカートリッジを取り外すまたは装着する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用して、プリンタ内の印字ホイールまたはフォントカートリッジを取り外します。

    # lpadmin -p printer-name -M -S none
    
    -p printer-name
    

    印字ホイールまたはフォントカートリッジを取り外すプリンタ名 

    -M -S none

    現在の印字ホイールまたはフォントカートリッジを取り外すように指定する 

    現在の印字ホイールまたはフォントカートリッジが、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルから削除されます。

  3. 印字ホイールまたはフォントカートリッジをプリンタから削除します。

  4. プリンタに新しい印字ホイールまたはフォントカートリッジを入れます。

  5. lpadmin コマンドを使用して、新しい印字ホイールまたはフォントカートリッジを装着します。

    # lpadmin -p printer-name -M -S hard-charset
    
    -p printer-name
    

    印字ホイールまたはフォントカートリッジを装着するプリンタ名 

    -M -S hard-charset
    

    装着したい印字ホイールまたはフォントカートリッジのプリンタに装着する文字セット名 

    印字ホイールまたはフォントカートリッジが、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに追加されます。装着された印字ホイールまたはフォントカートリッジは、取り外されるか、新しいものが装着されるまで使用可能です。

  6. 次のコマンドの出力の中で、「Print wheels」または「Character set」の見だしの下にある情報をチェックします。印刷ホイール名または文字セット名と注意「mounted」が表示されます。

    $ lpstat -p printer-name -l
    

例 - 印字ホイールを取り外すまたは装着する

次の例は、プリンタ luna から現在の印字ホイールを取り外し、印字ホイール pica を装着するコマンドを示します。

# lpadmin -p luna -M -S none
# lpadmin -p luna -M -S pica

印字ホイールまたはフォントカートリッジの装着を促す警告を設定する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin(1M) コマンドを使用して、印字ホイールまたはフォントカートリッジの装着を促す警告を設定します。

    # lpadmin -S hard-charset -A alert [-Q requests] [-W minutes]
    -S hard-charset
    

    警告を設定したい印字ホイールまたはフォントカートリッジのプリンタに装着する文字セット名 

    -A alert
    

    印字ホイールまたはフォントカートリッジが要求されたときに出される警告の種類を指定する。alert に有効な値については、表 4-2 を参照。有効な値は mailwritequiet など。

    mail または write を指定すると、あらかじめ定義された警告メッセージが表示される。この警告メッセージは、指定した印字ホイールまたはフォントカートリッジの装着を促すもので、それを使用するように設定されている 1 つ以上のプリンタ名が含まれる

    -Q requests
    

    警告が出される前に、印字ホイールまたはフォントカートリッジが、待ち行列に入っていなければならない印刷要求の数を指定する。このオプションを指定しなければ、待ち行列に印刷要求が 1 つ入っただけで警告が出される 

    -W minutes
    

    警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送られる 

    警告は、印刷サーバーの /etc/lp/pwheels/charset-name/alert.sh ファイルに追加されます。

  3. 次のコマンドの出力をチェックして、印字ホイールまたはフォントカートリッジの装着を促す警告が追加されているかどうかを確認します。

    # 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(4) 名が正しい場合は、この手順を実行する必要はありません。terminfo データベースの使用方法については、「サポートされていないプリンタの terminfo エントリを追加する」を参照してください。


  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. tput(1) コマンドを使用して、指定したプリンタタイプの選択可能文字セット名を表示します。

    # tput -T printer-type csn
    
    -T printer-type
    

    terminfo データベースに入っているプリンタタイプ。terminfo データベースのエントリについては、「プリンタタイプ」を参照

    n
    

    指定したプリンタタイプの選択可能文字セットを表す番号 (0、1、2、3、4、5 など)。プロンプト記号に続いて選択可能文字セット名が表示される。たとえば、cs1 と指定すると、english# と表示される

  3. 選択可能文字セットの別名を設定します。

    # 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 ファイルに追加されます。

  4. 印刷サーバーの印刷クライアントであるシステムにスーパーユーザーまたは lp としてログインします。

  5. 選択可能文字セットの別名を設定します。

    # lpadmin -p printer-name -S select-charset1=alias1[,select-charset2=alias2...]
    

    このコマンドの変数は、手順 3 と同じです。

    別名は印刷クライアントの /etc/lp/printers/printer-name/configuration ファイルに追加されます。

  6. 別名を使用する必要がある印刷クライアントごとに、手順 4手順 5 を繰り返します。

  7. 印刷サーバーと印刷クライアント上で、次のコマンドの出力の中に選択可能文字セットの別名のリストがあることを確認します。

    $ 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 印刷サービスは、表 5-1 に示す PostScript フィルタを提供します。これらのフィルタプログラムは、/usr/lib/lp/postscript ディレクトリに入っています。通常、PostScript 印刷を行う場合は、印刷サーバーの設定時にフィルタプログラムをインストールする以外に何も行う必要はありません。Admintool が提供されるフィルタを自動的に使用可能にします。ただし、他のプリンタを管理する場合は、それらのプリンタの印刷フィルタを管理する必要がある場合があります。

印刷フィルタの作成

新しい印刷フィルタを作成するには、印刷フィルタプログラムを書き、印刷フィルタの定義を作成しなければなりません。フィルタには、入力形式、出力形式、フィルタ内でコマンド行引数を処理するための言語を提供する複雑なオプションが含まれます。説明と手順については、「新しい印刷フィルタの作成」を参照してください。

印刷フィルタの追加、変更、削除、および復元

印刷フィルタは、印刷サーバーだけで追加、変更、または削除できます。

lpfilter(1M) コマンドを使用して、利用できるフィルタのリストを管理します。フィルタに関するシステム情報は、/etc/lp/filter.table ファイルに格納されます。lpfilter コマンドは、テーブルに書き出すフィルタに関する情報を、フィルタ記述子ファイルから取得します。提供されているフィルタ記述子ファイル (PostScript のみ) は、/etc/lp/fd ディレクトリに入っています。実際のフィルタプログラムは、/usr/lib/lp の下にあります。

LP 印刷サービスでは、定義できる印刷フィルタの数に制限はありません。使用しないフィルタを削除して LP 印刷サービスによる処理を減らすことができます。(その場合は、LP はすべてのフィルタを検査して特定の印刷要求に使用するフィルタを 1 つ見つけます。) 確信が持てない場合は、フィルタを削除しないでください。

フィルタを追加、変更、または削除すると、LP 印刷サービスによって提供されている元のフィルタの一部を上書きしたり、削除したりしてしまう可能性があります。必要に応じて元のフィルタを復元し、追加したフィルタを削除できます。

SunOS 5.7 システムソフトウェアには、PostScript フィルタのデフォルトセットが組み込まれています。デフォルトセットは、Admintool によって印刷サーバーに自動的に追加されます。SunOS 4.1 で使用されていた TranScript フィルタは、SunOS 5.7 にも相当するものがある場合とない場合があります。表 5-1 は、デフォルトの PostScript フィルタと、該当する TranScript フィルタが存在する場合はそのフィルタ名を示しています。

表 5-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.7 には、次のフィルタは組み込まれていません。

Enscript の代わりに postreversepostprintpostiodpost の各フィルタが組み込まれています。

Admintool は、印刷サーバーにデフォルトの PostScript フィルタを追加します。これらのフィルタでは処理できない印刷ニーズがある場合は、カスタム印刷フィルタの作成方法については、「新しい印刷フィルタを作成する方法」を参照してください。

印刷フィルタを追加する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpfilter コマンドを使用し、印刷フィルタの定義に基づく印刷フィルタを追加します。

    # lpfilter -f filter-name -F filter-def
    
    -f filter-name

    印刷フィルタ用に選択する名前 

    -F filter-def

    印刷フィルタの定義名 

    印刷フィルタは、印刷サーバーの /etc/lp/filter.table ファイルに追加されます。

  3. 次のコマンドの出力の中の印刷フィルタについての情報をチェックして、印刷フィルタが追加されているか確認します。

    # lpfilter -f filter-name -l
    

例 - 印刷フィルタを追加する

次の例は、daisytroff.fd 印刷フィルタ定義を持つ daisytroff 印刷フィルタを追加するコマンドを示しています。

# lpfilter -f daisytroff -F /etc/lp/fd/daisytroff.fd

印刷フィルタを削除する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpfilter コマンドを使用して印刷フィルタを削除します。

    # lpfilter -f filter-name -x
    
    -f filter-name
    

    削除する印刷フィルタ名 

    -x

    指定したフィルタを削除する 

    印刷フィルタが、印刷サーバーの /etc/lp/filter.table ファイルから削除されます。

  3. 次のコマンドを使用して、フィルタが削除されていることを確認します。指定した名前のフィルタがないというエラーメッセージが表示されます。

    # lpfilter -f filter-name -l
    

例 - 印刷フィルタを削除する

次の例は、daisytroff 印刷フィルタを削除するコマンドを示しています。

# lpfilter -f daisytroff -x

印刷フィルタに関する情報を表示する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpfilter コマンドを使用して、印刷フィルタに関する情報を要求します。

    # lpfilter -f filter-name -l
    
    -f filter-name
    

    情報を表示したい印刷フィルタ。利用できるすべての印刷フィルタに関する情報を表示するには、filter-nameall を指定する

    -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 印刷サービスに対してフォームを定義し終わったら、チェックしたい情報に応じて 2 つのコマンドのどちらかでフォームの定義をチェックできます。

既存のフォーム名がわからない場合は、/etc/lp/forms ディレクトリの内容の一覧を表示して調べることができます。

フォームへのアクセスの制限

どのプリンタやユーザーが、ネットワーク上で利用可能な一部またはすべてのフォームを使用できるかを制御できます。たとえば、経理部に属するユーザーだけが小切手のフォームを印刷できるようにしたい場合があります。また、特定のプリンタだけで利用できる小切手のフォームが必要な場合もあります。

フォームへのユーザーアクセスを制限するには、「フォームへのユーザーアクセスを制限する方法」、フォームへのプリンタアクセスを制限するには、「フォームへのプリンタアクセスを制限する方法」を参照してください。

フォームを追加する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpforms コマンドを使用し、フォーム定義に基づくフォームを追加します。

    # lpforms -f form-name -F /etc/lp/forms/form
    
    -f form-name

    フォーム用に選択した名前 

    -F /etc/lp/forms/form

    フォーム定義名 

    フォームは、印刷サーバーの /etc/lp/forms/form-name/describe ファイルに追加されます。

  3. 次のコマンドの出力に、フォームについての情報があるかをチェックして、フォームが追加されているか確認します。

    # lpforms -f form-name -l
    

例 - フォームを追加する

次の例は、medical.fmd フォーム定義を使用する medical フォームを追加するコマンドを示します。

# lpforms -f medical -F /etc/lp/forms/medical.fmd

注 -

フォームを使用する前に、そのフォームへのアクセスを 1 つ以上のプリンタに与えておかなければなりません。「フォームへのプリンタアクセスを制限する方法」を参照してください。


フォームを削除する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpforms コマンドを使用してフォームを削除します。

    # lpforms -f form-name -x
    
    -f form-name
    

    削除するフォーム名 

    -x

    指定したフォームを削除する 

    フォームが /etc/lp/forms/form-name ファイルから削除されます。

  3. 次のコマンドを使用して、フォームが削除されたか確認します。指定したフォーム名がないことを示すエラーメッセージが表示されます。

    # lpforms -f form-name -l
    

例 - フォームを削除する

次の例は、medical フォームを削除するコマンドを示しています。

# lpforms -f medical -x

フォームを取り外し、装着する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. reject コマンドを使用して、現在のフォームを取り外そうとしているプリンタ上で印刷要求を停止します。

    # reject printer-name
    

    printer-name

    フォームを取り外すプリンタ名 

    新しい印刷要求 (フォームを必要としない場合もあります) は、そのプリンタの待ち行列に入れられなくなります。

  3. lpadmin コマンドを使用して、現在のフォームを取り外します。

    # lpadmin -p printer-name -M -f none
    

    このコマンドの変数 printer-name は、手順 2 と同じです。

    現在のフォームは、印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルから削除されます。

  4. プリンタからフォーム用紙を取り外します。

  5. 次の印刷要求のためにフォーム用紙を装着します。

  6. lpadmin コマンドを使用してフォームを装着します。

    # 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 ファイルに追加されます。

  7. プリンタ上で印刷要求の受け付けを開始します。

    # accept printer-name
    

    これで、プリンタは新しく装着したフォームで印刷する準備ができました。

  8. 次のコマンド出力の「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

フォームの装着に関する警告を設定する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用して、フォームの装着に関する要求警告を設定します。

    # lpforms -f form-name -A alert [-Q requests] [-W minutes]
    -f form-name
    

    要求警告を設定したいフォーム名 

    -A alert
    

    フォームが要求されるときに出す警告の種類を指定する。alert に有効な値については、表 4-2 を参照。有効な値は mailwrite、または quietmail または write を選択すると、あらかじめ定義された警告メッセージが表示される。この警告メッセージは、指定されたフォームの装着を促すもので、そのフォームを使用するように設定されている 1 つ以上の複数のプリンタ名が含まれる

    -Q requests
    

    警告が出される前に、フォームが必要な印刷要求がいくつ待ち行列に入っていなければならないかを指定する。このオプションを指定しなければ、印刷要求が待ち行列に 1 つ入っただけで警告が出される 

    -W minutes
    

    警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送られる 

    要求警告は、印刷サーバーの /etc/lp/forms/form-name/alert.sh ファイルに追加されます。

  3. 次のコマンドの出力をチェックして、そのフォームに関する警告が追加されていることを確認します。

    # 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

フォームに関する情報を表示する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpforms コマンドを使用して、フォームに関する情報を要求します。

    # lpforms -f form-name -l
    
    -f form-name
    

     

    情報を表示したいフォーム名。利用できるすべてのフォームに関する情報を表示するには、form-nameall を指定する

    -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

フォームの現在の状態を表示する方法

  1. 印刷サーバーにログインします。

  2. lpstat(1) コマンドを使用して、フォームの現在の状態に関する情報を要求します。

    $ lpstat -f form-name
    

    -f form-name

    現在の状態を表示したいフォーム名。すべてのフォームの現在の状態を表示したい場合は、form-nameall を指定する

    指定した 1 つ以上のフォームの現在の状態に関する情報が表示されます。

例 - フォームの現在の状態を表示する

次の例は、medical フォームの状態を表示しています。

$ lpstat -f medical,payroll
form medical is available to you

フォームへのユーザーアクセスを制限する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpforms コマンドを使用して、フォームへのユーザーアクセスを許可または拒否します。

    # lpforms -f form-name -u allow:user-list | deny:user-list
    
    -f form-name
    

    ユーザーアクセスの許可または拒否リストを作成するためのフォーム名 

    -u allow:user-list
    

    ユーザーアクセスの許可リストに追加するユーザー名。複数のユーザーログイン ID を指定する場合は、空白またはコンマで区切る。空白で区切る場合は、ID のリストを引用符で囲む。user-list の有効な値については、表 4-4 を参照

     

    -deny:user-list
    

    ユーザーアクセス拒否リストに追加するユーザー名。複数のユーザーログイン名を指定する場合は、空白またはコンマで区切る。空白で区切る場合は、ID のリストを引用符で囲む。user-list の有効な値については、表 4-4 を参照

    印刷サーバーの次のどちらかのファイルの指定されたフォーム用の許可または拒否のユーザーアクセスリストに、指定した 1 人以上のユーザーが追加されます。

    /etc/lp/forms/form-name/allow/etc/lp/forms/form-name/deny 
    

  3. lpforms コマンドを使用して、ユーザーアクセスの許可リストと拒否リストを確認します。

    # lpforms -f form-name -l
    

例 - フォームへのユーザーアクセスを制限する

次の例は、ユーザー nathanmarcia にのみ check フォームへのアクセスを許可するコマンドを示しています。

# lpforms -f check -u allow:nathan,marcia

次の例は、ユーザー jonessmithによる dental フォームへのアクセスを拒否するコマンドを示しています。

# lpforms -f dental -u deny:"jones,smith"

フォームへのプリンタアクセスを制限する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. 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 
    

  3. 次のコマンドを使用して、許可リストと拒否リストを確認します。

    # lpstat -p printer-name -l
    

例 - フォームへのプリンタアクセスを制限する

次の例では、プリンタ lunamedicaldentalcheck の各フォームへのアクセスのみを許可します。

# lpadmin -p luna -f allow:medical,dental,check

次の例では、プリンタ luna による medicaldentalcheck の各フォームへのアクセスを拒否します。

# lpadmin -p luna -f deny:"medical dental payroll"

フォントの管理

レーザプリンタがある場合は、PostScript 用のフォントをインストールして管理する必要があります。PostScript フォントをインストールするシステムと、その管理方法も決定する必要があります。多くのプリンタの場合、プリンタのインストール作業の一部としてフォントを設定します。

PostScript フォントは、プリンタかプリンタと通信を行うシステムのどちらかに、アウトライン形式で格納されます。文書の印刷時に、PostScript インタプリタは、アウトライン記述から適切な大きさの各文字を必要に応じて生成します。文書に必要なフォントが使用するプリンタに格納されていない場合は、文書が印刷される前にそのフォントをプリンタに転送しなければなりません。この転送処理を「フォントのダウンロード」といいます。

フォントは、次のいくつかの方法で格納または使用されます。

プリンタ常駐フォントの管理

ほとんどの PostScript プリンタは、プリンタ内蔵の ROM にフォントが搭載されています。プリンタによっては、追加フォントを格納するためのディスクが用意されています。プリンタをインストールするときに、そのプリンタ用のフォントリストにプリンタ常駐フォントを追加してください。プリンタ常駐フォントがわかっていれば、フォントをネットワーク経由で必要以上に転送することがなくなります。各プリンタには搭載されているフォントの独自のリストがあります。これは、次のファイルに入っています。

/etc/lp/printers/printer-name/residentfonts

プリンタを印刷サーバーに接続するときには、印刷サーバー上にあってプリンタにダウンロードできるフォントが、residentfonts ファイル内のリストに含まれているかどうかを確認します。

プリンタ常駐フォントのリストが入っているファイルは、vi などのテキストエディタを使用して編集しなければなりません。

ホスト常駐フォントのダウンロード

PostScript の文書がプリンタにダウンロードされていないフォント指定を含んでいるときは、「ダウンロードフィルタ」がこの印刷要求を管理します。ダウンロードフィルタは PostScript の文書作成規則を使用して、ダウンロードするフォントを決定します。

LP 印刷フィルタには、高速フィルタと低速フィルタがあります。高速フィルタは、印刷するファイルをすばやく準備し、フィルタが処理している間にプリンタにアクセスしなければなりません。低速フィルタはファイルの変換に時間がかかり、フィルタが処理している間にプリンタにアクセスする必要はありません。低速フィルタの例には、ASCII ファイルから PostScript ファイルへのフィルタがあります。

ダウンロードフィルタは高速フィルタです。フォントが印刷サーバー上にある場合は、フォントを自動的にダウンロードします。また、ダウンロードフィルタを使用して、印刷サーバーにフォントを転送することもできます。そのためには、lp -y コマンドを指定して、ダウンロードフィルタを低速フィルタとして呼び出すための新しいフィルタテーブルのエントリを作成します。あるいは、入力タイプを変更して、このフィルタの選択を強制することもできます。

ダウンロードフィルタは、次の 5 つの作業を実行します。

  1. PostScript の文書を検索して、要求されているフォントを判別します。これらの要求は、ヘッダコメントの PostScript 構造化コメント %%DocumentFonts: font1 font2 ... で指定されます。

  2. プリンタ常駐フォントのリストを検索して、要求されたフォントをダウンロードしなければならないかどうかを判別します。

  3. フォントがプリンタ上になければ、ダウンロードフィルタは (マップテーブルから適切なファイル名を読み取って) ホスト常駐フォントのディレクトリを検索し、要求されたフォントが利用可能かどうかを判別します。

  4. そのフォントが利用可能であれば、フィルタはそのフォントのファイルを取り出し、印刷するファイルに追加します。

  5. フォント定義ファイルとソースファイル (印刷するファイル) を PostScript プリンタに送ります。

ホスト常駐フォントのインストールと管理

フォントによっては、ホストシステムに格納されており、特定の印刷要求に応じてプリンタに転送されるものがあります。管理者は、システム上のすべてのユーザーが PostScript フォントを使用できるように管理する必要があります。そのためには、これらのフォントのインストール方法とインストール場所を知っておかなければなりません。フォントは名前で要求され、ファイルに格納されているので、LP 印刷サービスはフォント名とフォントを定義しているファイル名を対応付けるマップファイルを持っています。ホスト常駐フォントをインストールするときには、マップファイルとフォントリストの両方を更新しなければなりません。

PostScript プリンタで利用できるフォントは、ユーザーが作成した /usr/share/lib/hostfontdir/typeface/font ディレクトリに格納されます。この場合、typefacepalatinohelvetica などの名前に置き換えられ、fontbolditalic などの名前に置き換えられます。

ダウンロードされた PostScript フォントをインストールする方法

  1. 印刷サーバーまたは印刷クライアント上でスーパーユーザーまたは lp としてログインします。

  2. /etc/lp/printers/printer-name ディレクトリに変更します。

    # cd /etc/lp/printers/printer-name
    

    printer-name

    ダウンロードされた PostScript フォントをインストールするプリンタ名 

  3. residentfonts ファイルが存在しない場合は作成します。

    # touch residentfonts
    

    常駐させるダウンロードフォントを初めて追加する場合は、このファイルが存在しないことがあります。

  4. residentfonts ファイルを編集して、すべてのプリンタ常駐フォントとダウンロードフォントを追加します。

    vi などのエディタを使用できます。

  5. ファイルを保存します。

ホスト常駐 PostScript フォントをインストールする方法

  1. 印刷サーバーまたは印刷クライアント上でスーパーユーザーまたは lp としてログインします。

  2. hostfontdir ディレクトリが存在しない場合は作成します。

    # cd /usr/share/lib
    # mkdir hostfontdir
    # chmod 775 hostfontdir
    
  3. 新しい書体のディレクトリが存在しない場合は作成します。

    # mkdir typeface
    
  4. フォントファイルを適切なディレクトリにコピーします。

    # cp filename /usr/share/lib/hostfontdir/typeface/font
    
  5. マップテーブルに組み込むフォント名とファイル名を追加します。

    1. /usr/share/lib/hostfontdir ディレクトリに変更します。

    2. vi などのテキストエディタを使用して map ファイルを編集します。

      テーブルに追加したいフォントごとに 1 行ずつエントリを追加します。エントリには、フォント名、スペース 1 個、フォントが常駐するファイル名の順に入力します。たとえば、次のようになります。

      Palatino-Bold /usr/share/lib/hostfontdir/palatino/bold
    3. ファイルを保存します。

      適切なシステム上のマップテーブルにサンプルエントリを入れておけば、ユーザーは各自の印刷ジョブに (たとえば、Palatino Bold などの) フォントを適用できます。このフォントを含む印刷要求を依頼すると、LP 印刷サービスはそのファイルに /usr/share/lib/hostfontdir/palatino/bold のコピーを追加してから、プリンタに送信します。

  6. troff を使用している場合は、このフォント用の新しいフォント幅テーブルを標準 troff フォントディレクトリ内で作成します。

第 6 章 LP 印刷サービスのカスタマイズの手順

この章では、LP 印刷サービスのカスタマイズについての概要と手順について説明します。

この章で説明する手順は次のとおりです。

プリンタの概要については、第 1 章「印刷管理の概要」を参照してください。

プリンタポート特性の調整

LP 印刷サービスによって設定されるプリンタポート特性には、プリンタの通信設定と互換性がなければなりません。LP 印刷サービスから提供されたデフォルトのプリンタポート設定値がプリンタで機能しない場合は、プリンタのマニュアルを参照し、そのプリンタが LP 印刷サービスに対してどのような設定値が必要かを調べてください。プリンタ通信設定を設定および表示するには、stty コマンドを使用します。

表 6-1 は、LP 印刷サービスに使用されるデフォルトの stty 設定値を示しています。

表 6-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

用紙送りの後に遅延を入れない 

プリンタポート特性を調整する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用してプリンタポート特性を調整します。

    # lpadmin -p printer-name -o "stty=options"
    
    -p printer-name
    

    ポート特性を調整するプリンタ名 

    -o "stty=options"

    options で指定したポート特性 (stty オプション) を設定する。このコマンドで 1 つ以上の stty オプションを変更できる。オプションを区切るには空白を使用し、オプションを一重引用符で囲む。 オプションについては、stty(1) のマニュアルページを参照。LP 印刷サービスで使用されるデフォルトの stty 設定については、表 6-1 を参照

  3. 次のコマンドを使用して、プリンタポート特性が変更されたかどうかを確認します。

    # stty -a
    

例 - プリンタポート特性を調整する

次の例で、コマンドはプリンタ luna のポート特性を設定します。parenb オプションはパリティチェック/生成を使用可能にし、parodd は奇数パリティの生成を設定し、cs7 は文字サイズを 7 ビットに設定します。

# lpadmin -p luna -o "stty='parenb parodd cs7'"

次の例で、コマンドはプリンタ venus の端末ボーレートを 19200 に設定します。

# lpadmin -p venus -o "stty=19200"

サポートされていないプリンタの terminfo エントリを追加する

LP 印刷サービスは、インタフェースプログラムと terminfo データベースを使用して各プリンタを初期化し、選択されたページサイズ、文字ピッチ、行ピッチ、および文字セットを設定します。

各プリンタは、terminfo データベース内で短縮名を使用して識別されます。terminfo データベースで使用される名前は、TERM シェル変数を設定するのに使用する名前と同じです。また、この名前はプリンタを設定するときに指定するプリンタタイプでもあります。たとえば、各種の PostScript プリンタのエントリは、/usr/share/lib/terminfo/P に入っています。SunOS 5.7 システムに組み込まれているデフォルトエントリは、PS (PostScript 用) と PSR (Reverse PostScript 用) です。

プリンタの terminfo エントリが見つからなくても、ページサイズ、ピッチ、および文字セットを自動選択しないで、LP 印刷サービスでプリンタを使用できます。ただし、印刷要求ごとに正しいモードでプリンタが設定されないという問題が起きることがあります。

使用中のプリンタタイプの terminfo エントリがないが、プリンタを正しいモードに設定しておきたい場合は、プリンタで使用するインタフェースプログラムをカスタマイズするか、terminfo データベースにエントリを追加できます。terminfo データベース内の端末エントリやプリンタエントリには、多数の項目が入っており、定義されています。しかし、LP 印刷サービスはそのうち 50 未満の項目しか使用しません。表 6-2 は、プリンタに必要な terminfo 項目を示しています。

表 6-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 エントリがないことを確認してください。そのためには、類似するプリンタがあれば、そのエントリを使用してプリンタを設定してください。


  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. プリンタの terminfo エントリ名を決定します。

    /usr/share/lib/terminfo ディレクトリ内のディレクトリには、有効な terminfo エントリがすべて入っています。それを参考にしてプリンタ名を選択してください。

  3. プリンタの terminfo エントリファイルを作成します。

    LP 印刷サービスに新しいプリンタを追加するために terminfo エントリ内で定義しなければならない項目については、表 6-2 を参照してください。terminfo データベースの構造については、terminfo(4) のマニュアルページを参照してください。

    新しい terminfo エントリを作成しやすいように、infocmp コマンドを使用して既存の terminfo エントリをファイルに保存します。これは、作成したいエントリに似た terminfo エントリがある場合に便利な方法です。たとえば、次のコマンドで ps エントリを ps_cust ファイルに保存すると、新しい terminfo エントリになります。

    infocmp ps > ps_cust

  4. terminfo エントリをコンパイルして terminfo データベースに入れます。

    # tic terminfo_entry
    

    terminfo_entry

    作成した terminfo エントリファイル

  5. /usr/share/lib/terminfo ディレクトリ内で新しい terminfo エントリファイルをチェックします。

プリンタインタフェースプログラムのカスタマイズ

標準プリンタインタフェースプログラムでサポートされないプリンタを使用する場合は、独自のプリンタインタフェースプログラムを提供できます。標準プログラムをコピーし、指定したプリンタを使用するように LP 印刷サービスに指示できます。ただし、まず標準プログラムについて理解する必要があります。次の節では、標準プログラムについて説明します。

プリンタインタフェースプログラムの機能は次のとおりです。


注意 - 注意 -

リリース 3.2 より前の UNIX System V のプリンタインタフェースプログラムを使用している場合でも、そのプログラムは、SunOS 5.7 または互換 LP 印刷サービスで使用できます。ただし、一部の -o オプションは SunOS 5.7 または互換 LP 印刷サービスでは標準化されていて、すべてのプリンタインタフェースプログラムに渡されます。これらのオプションは、古いインタフェースで使用される同じ名前のオプションの妨げとなることがあります。


プリンタポートを開く処理は、プリンタインタフェースプログラムではなく LP 印刷サービスが受け持ちます。プリンタポートは標準出力としてプリンタインタフェースプログラムに与えられ、プリンタはプリンタインタフェースプログラムの「制御端末」として識別されるので、ポートが「ハング」するとプリンタインタフェースプログラムに SIGHUP 信号が送信されます。

標準プリンタインタフェースプログラム

LP 印刷サービスは、標準 (モデル) プリンタインタフェースプログラム /usr/lib/lp/model/standard を使用して、表 6-3 の印刷デフォルトを設定します。

表 6-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

stty モードのカスタマイズ

ボーレートや出力オプションなどの端末特性を変更する必要がある場合は、標準プリンタインタフェースプログラム内で、次のコメントから始まるセクションを探します。

## Initialize the printer port

終了コード

印刷し終わると、インタフェースプログラムは印刷ジョブの状態を示すコードを返して終了します。終了コードは、プリンタインタフェースプログラムの最後のエントリです。

表 6-4 は、終了コードとそのコードが LP 印刷サービスでどのように解釈されるかを示しています。

表 6-4 プリンタインタフェースプログラムの終了コード

コード 

LP 印刷サービスにとっての意味 

0

印刷要求は正常に完了した。プリンタ障害が発生した場合は、クリアされた 

1127

要求の印刷中に問題が発生した (たとえば、印字できない文字が多すぎる、要求がプリンタの容量を超えているなど)。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 印刷サービスに登録します。

独自のプリンタインタフェースプログラムを設定する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. 独自のプリンタインタフェースプログラムがあるかどうかに基づいて次の手順を選択します。

    独自のプリンタインタフェースプログラムの有無 

    次の手順 

    独自のプリンタインタフェースプログラムがないので作成する必要がある 

    手順 3

    すでに独自のプリンタインタフェースプログラムがある 

    手順 5

  3. 標準プリンタインタフェースプログラムをコピーします。

    # cp /var/spool/lp/model/standard custom-interface
    
  4. 標準プリンタインタフェースプログラムのコピーを必要に応じて変更します。

    詳しくは、「標準プリンタインタフェースプログラム」のプログラムの説明を参照して、何を変更する必要があるかを判断してください。

  5. 特定のプリンタ独自のプリンタインタフェースプログラムを設定します。

    # lpadmin -p printer-name -i custom-interface
    
    -p printer-name
    

    独自のプリンタインタフェースプログラムを使用するプリンタ名 

    -i custom-interface
    

    独自のプリンタインタフェースプログラム名 

    独自のプリンタインタフェースプログラムが LP 印刷サービスに登録され、ユーザーが印刷要求を出すと、そのプリンタに使用されます。

  6. 独自のプリンタインタフェースプログラムが /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.7 印刷サービスには、/usr/lib/lp/postscript ディレクトリにフィルタプログラムが組み込まれています。これらのフィルタは、宛先プリンタが PostScript 形式のデータを必要とするほとんどの PostScript 印刷の状況に対応します。印刷フィルタプログラムは、2 進の実行可能プログラムでなければなりません。

フィルタのタイプ

印刷フィルタには、高速フィルタと低速フィルタの 2 種類があります。

高速フィルタは、ファイルの印刷準備にあまり処理時間がかかりません。また、実行するときにはプリンタにアクセスしなければなりません。印刷障害を検出する印刷フィルタは、高速フィルタでなければなりません。PRINTER キーワードをフィルタオプションとして使用するフィルタは、高速フィルタとしてインストールしなければなりません。

低速フィルタは、ファイルの印刷準備に大量の処理時間がかかります。また、低速フィルタは実行するときにプリンタにアクセスする必要がありません。低速フィルタはバックグラウンドで実行されるので、プリンタと連結する必要がなく、低速フィルタを必要としない他のファイルを印刷できます。

ファイルの変換

LP 印刷サービスは、印刷フィルタを使用して、ある内容形式から別の内容形式にファイルを変換します。プリンタごとに、受け付けられるファイル内容形式を指定できます。ユーザーは印刷要求を出すときにファイル内容形式を指定し、LP 印刷サービスはその内容形式のファイルを印刷できるプリンタを探します。多くのアプリケーションは各種プリンタに合わせてファイルを生成できるので、通常はこれで十分です。ただし、アプリケーションによっては、利用できるプリンタ上で印刷できないファイルを生成するものがあります。

LP 印刷サービスは、プリンタで直接受け付けられない形式のファイルの印刷要求を受信するたびに、印刷要求の内容形式を利用できる (または指定された) プリンタの内容形式と一致させようとします。一致すると、そのファイルはフィルタをかけなくてもプリンタに直接送信できます。一致する形式が見つからない場合や、内容形式でフィルタを使用するように指定されている場合は、LP 印刷サービスはファイルの内容形式を利用できるフィルタの入力内容形式と一致させ、フィルタの出力形式をプリンタの内容形式と一致させようとします。適切なフィルタが見つかると、印刷要求はフィルタを通して渡されます。

特殊印刷モードの処理

印刷フィルタは、特殊モードを処理し特殊ページの印刷を要求します。特殊印刷モードは、カスタマイズされたフィルタが必要な印刷要求の特性を印刷するために必要です。フィルタは、次の特性を処理します。

LP 印刷サービスは、これらの特性にデフォルト設定を提供します。ただし、印刷フィルタの方が一部の特性を効率よく処理できます。たとえば、プリンタによっては、LP 印刷サービスより効率よく複数のコピーを処理できるものがあり、その場合は複数コピーのページ制御用フィルタを提供できます。

プリンタ障害の検出

各プリンタは、独自の方法でプリンタ障害を検出し、障害信号を LP 印刷サービスに送信します。LP 印刷サービスは、印刷中にハングアップ (キャリア喪失) と過剰な遅延の有無をチェックするだけです。

プリンタによっては、優れた障害処理能力を持ち、障害の原因を記述するメッセージを送信できるものがあります。また、キャリア信号の喪失やデータフローのシャットオフを示すものとは異なる信号を使用して障害を示すプリンタもあります。これらの付加的なプリンタ障害情報を解釈するには、フィルタが必要です。

また、フィルタは印刷要求を保留し、プリンタ障害がクリアされるまで待ってから印刷を再開します。この機能を使用すると、中断された印刷要求全体を印刷し直す必要がありません。プリンタに使用される制御シーケンスを認識するフィルタだけが、ファイルの改ページ位置を判別できます。したがって、その種のフィルタ以外は、障害がクリアされた後で印刷を再開する必要があるファイル内の位置を検出できません。

印刷フィルタがメッセージを生成すると、そのメッセージは LP 印刷サービスによって処理され、警告が使用可能になっている場合は、システム管理者に警告が送信されます。「障害の通知の設定」を参照してください。

印刷フィルタプログラムの要件

印刷フィルタは単純なものでも複雑なものでもかまいませんが、次の要件を満たさなければなりません。

フィルタにプリンタ障害を検出させたい場合は、次の要件も満たしてください。

印刷フィルタ定義の作成

印刷フィルタ定義は、フィルタ、実行する印刷フィルタプログラム、実行する変換の種類などを 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 番目の定義のみが印刷サービスに使用されます。


情報はどんな順序で配置してもかまいません。また、すべての情報が必要とは限りません。値を指定しなければ、表 6-5 の値がデフォルトで割り当てられます。デフォルト値はあまり便利ではないので、明示的な値を指定するようにしてください。

表 6-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 個のキーワードについては、表 6-6 を参照してください。

表 6-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 は、キーワードが指定した値のときに発生する動作です。

特定のフィルタのオプションを定義する方法を示す例として、印刷サービススケジューラを使って次の条件でフィルタに印刷要求を割り当てたいものと仮定します。

上記の条件を指定するには、lpfilter コマンドのオプションとして次のテンプレートを与えます。

Options: OUTPUT impress=-I, OUTPUT postscript=-P

Options 行が長くなりすぎる場合は、次のように各テンプレートを別々の行に入れます。

Options: OUTPUT impress=-I
Options: OUTPUT postscript=-P 

どちらのテンプレートでも、keywordOUTPUT として定義されています。第 1 のテンプレートでは、パターンは impress で、「replacement」の値は -I です。第 2 のテンプレートでは、「pattern」の値は postscript で、「replacement」の値は -P です。

各種テンプレート (つまり、各キーワードの pattern 引数と replacement 引数) に与える値を見つけるには、次のことに注意する必要があります。

テンプレートの replacement 部は、テンプレートの値をフィルタプログラムに与える方法を示します。通常はリテラルオプションですが、値の位置を示すプレースホルダのアスタリスク (*) が付いていることがあります。patternreplacement には、ユーザー入力オプションからフィルタオプションへの複雑な変換を行うために、ed(1) の正規表現の構文を使用することもできます。ed(1) の正規表現の構文はすべて使用できます。たとえば、¥( ... ¥)¥n 構成を使用すると、pattern の各部を抽出して replacement にコピーできます。また、& を使用すると、pattern 全体を replacement にコピーできます。


注 -

pattern または replacement にコンマまたは等号 (=) を含める場合は、その前にバックスラッシュ (¥) を付けてください。これらの文字の前にバックスラッシュが付いていると、pattern または replacement が使用されるときに削除されます。


新しい印刷フィルタを作成する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. 印刷フィルタプログラムを作成します。

    印刷フィルタプログラムの概要については、「印刷フィルタプログラムの作成」を参照してください。印刷フィルタ定義はテキストファイルに保存する必要があります。使用しやすいように、通常、フィルタ定義は /usr/lib/lp/postscript ディレクトリに入っています。作成したプログラムは、選択したディレクトリ内の /usr/lib/lp の下に入れる必要があります。

  3. 印刷フィルタ定義を作成します。

    印刷フィルタ定義の概要については、「印刷フィルタ定義の作成」を参照してください。印刷フィルタ定義はテキストファイルに保存する必要があります。使用しやすいように、通常、フィルタ定義は /etc/lp/fd ディレクトリに入っており、接尾辞 .fd で識別されます。

  4. 印刷フィルタを印刷サーバーに追加します。

    詳細は、「印刷フィルタを追加する方法」を参照してください。

例 - 新しい印刷フィルタを作成する

次の例は、N37 または Nlpsimple に変換する印刷フィルタ定義を示します。

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 コマンドを使用して指定しなければなりません。

新しい印刷フィルタを印刷サーバーに追加すると、印刷要求は次のように処理されます。

$ 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 lengthPage width など) で始まる行が含まれている場合は、キー句が行頭にならないように、その行を > 文字で始めます。先頭の > 文字は、コメントから除去されて表示されません。

すべての情報を与えなければならないわけではありません。表 6-7 の項目の値を指定しないときは、デフォルト値が割り当てられます。lpforms コマンドを実行する前に、新しいフォームに関して次の情報を収集してください。

表 6-7 フォームのデフォルト値

項目 

デフォルト 

説明 

ページ長 

66 行 

フォームの長さ、または複数ページのフォームの場合は各ページの長さ。この情報は、行数でもインチ単位やセンチメートル単位でもかまわない 

ページ幅 

80 列 

文字数、インチ数、またはセンチメートル数によるフォームの幅 

ページ数 

複数ページのフォームのページ数。LP 印刷サービスは、この数値と印刷フィルタ (利用できる場合) を使用して、位置揃えパターンを 1 つのフォームの長さに制限する。「位置揃えパターン」の説明を参照 

行ピッチ 

1 インチあたり 6 行 

フォーム上の行間隔。これは「リーディング」とも呼ばれる。2 行間の間隔、つまりベースラインからベースラインまでの間隔を 1 インチまたは 1 センチあたりの行数で表す 

文字ピッチ 

1 インチあたり 10 文字 

フォームに表示される文字間隔。文字の間隔を 1 インチまたは 1 センチあたりの文字数で表す 

文字セット選択肢 

任意 

このフォームに使用しなければならない文字セット、印字ホイール、またはフォントカートリッジ。ユーザーは、このフォームを使用するときに独自の印刷要求に別の文字セットを選択できる。また、単一の文字セットのみを使用するように指示できる 

リボンの色 

任意 

フォームを常に特定のカラーリボンで印刷しなければならない場合、LP 印刷サービスはどの色を使用すべきかを示す装着警告メッセージを表示できる 

コメント 

(デフォルトなし) 

ユーザーがフォームを理解する上で参考になる任意の情報。たとえば、フォーム名、そのバージョン、用途、または使用上の制限を示すことができる 

位置揃えパターン

(デフォルトなし) 

LP 印刷サービスが 1 枚のブランクフォームを埋めるために使用するサンプルファイル。フォームを装着するときに、このパターンを印刷して正しく位置揃えすることができる。また、印刷サービスに印刷方法が認識されるように、このパターンの内容形式を定義することもできる 


注 -

LP 印刷サービスは、位置揃えパターン内の重要な情報にマスクをかけようとしません。小切手を位置揃えするときなど、サンプルフォームに重要な情報を印刷したくない場合は、該当するデータにマスクをかける必要があります。LP 印刷サービスは、スーパーユーザーまたは lp としてログインしたユーザー以外は読み取れないように、位置揃えパターンを安全な場所に格納します。


フォーム情報を収集し終わったら、フォームを lpforms コマンドに入力します。lpforms コマンドに入力する前にこの情報を編集できるように、まず、この情報を別のファイルに記録してください。そうすれば、プロンプトの後で個々の情報を入力しなくても、そのファイルを入力として使用できます。

新しいフォーム定義を作成する方法

  1. 印刷サーバー上でスーパーユーザーまたは lp としてログインします。

  2. フォーム定義ファイルを作成します。

    印刷フォームの作成方法の概要については、「新しいプリンタフォームの作成」を参照してください。プリンタ定義はテキストファイルに保存してください。

  3. lpadmin コマンドを使用して、フォームを LP 印刷サービスに追加します。

    # lpadmin -p printer-name -M -f form-name
    
  4. フォームを印刷サーバーに追加します。

    手順については、「フォームを追加する方法」を参照してください。

第 7 章 LP 印刷サービスの参照情報

この章では、LP 印刷サービスの内容説明を提供します。

印刷管理作業の手順については、次の章を参照してください。

LP 印刷サービス

「LP 印刷サービス」とは、ユーザーが作業を続けながらファイルを印刷できるようにするソフトウェアユーティリティの集合です。当初、印刷サービスは LP スプーラと呼ばれていました (LP はラインプリンタを意味しますが、現在ではレーザプリンタなど、他の多数のプリンタも含まれています。スプール (spool) は、system peripheral operation off-line の頭文字です)。

印刷サービスは、LP 印刷サービスソフトウェア、システム管理者が提供する印刷フィルタ、ハードウェア (プリンタ、システム、およびネットワーク接続) からなっています。

LP 印刷サービスの構造

この節では、LP 印刷サービスのディレクトリ構造、ファイル、ログ、およびコマンドについて説明します。

ディレクトリ

LP 印刷サービスのファイルは、表 7-1 のように 7 つのディレクトリに分散されています。

表 7-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

ファイルが印刷待ち行列に入れられるスプーリングディレクトリ 

構成ファイル

スケジューラは、表 7-2 のように、/etc/lp ディレクトリに入っている LP 構成ファイルに構成情報を格納します。


注意 - 注意 -

表 7-2 の構成ファイルはプライベートインタフェースで、将来のリリースでは変更される可能性があります。現在の場所にあるファイルに依存する、または現在使用している形式のデータに依存するソフトウェアを構築しないようにしてください。


表 7-2 /etc/lp ディレクトリの内容

ファイル 

タイプ 

説明 

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 つずつサブディレクトリが入っています。次の例は、プリンタ sparc1luna/etc/lp/printers サブディレクトリを示します。

$ ls -l /etc/lp/printers
drwxrwxr-x 2 lp lp 512 Jan 23 23:53 luna
drwxrwxr-x 2 lp lp 512 Jan 11 17:50 sparc1

プリンタ固有の各ディレクトリ内では、次のファイルを使用してプリンタを記述できます。

通常、プリンタ luna の構成ファイル /etc/lp/printers/luna/configuration は、次のようになっています。

Banner: on: Always
Content types: PS
Device: /dev/term/b
Interface: /usr/lib/lp/model/standard
Printer type: PS
Modules: default

terminfo データベース

/usr/share/lib ディレクトリには、terminfo データベースのディレクトリが入っており、そのディレクトリには多数のタイプの端末とプリンタに関する定義が入っています。LP 印刷サービスは、terminfo データベース内の情報を使用してプリンタを初期設定し、選択されたページサイズ、文字ピッチ、行ピッチ、および文字セットを設定し、一連のコードをプリンタに送ります。

各プリンタは、terminfo データベース内で短縮名を使用して識別されます。terminfo データベースの構造については、「プリンタタイプ」を参照してください。必要であれば、terminfo データベースにエントリを追加できますが、これは煩雑で時間のかかる作業です。詳細は、「サポートされていないプリンタの terminfo エントリを追加する」 を参照してください。

デーモンと LP 内部ファイル

/usr/lib/lp ディレクトリには、表 7-3 に示すような LP 印刷サービスに使用されるデーモンとファイルが入っています。

表 7-3 /usr/lib/lp ディレクトリの内容

ファイル 

タイプ 

説明 

bin

ディレクトリ 

印刷警告、低速フィルタ、待ち行列管理プログラムを生成するファイルが入っている 

lpsched

デーモン 

LP 印刷要求のスケジューリングを管理する 

model

ディレクトリ 

標準プリンタインタフェースプログラムが入っている 

postscript

ディレクトリ 

SunOS 5.7 または互換 LP 印刷サービスで提供されているすべての PostScript フィルタプログラムが入っている。これらのフィルタには、フィルタの特性とその格納場所を LP 印刷サービスに指示する /etc/lp/fd ディレクトリ内の記述子ファイルが含まれる

ログファイル

LP 印刷サービスは、次の 2 組のログファイルを管理します。

印刷待ち行列ログ

各システムのスケジューラは、ディレクトリ /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 印刷サービスは、lpschedrequests という 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
1998
z slw2
C 1
D slw2
F /etc/motd
P 20
t simple
U irving
s 0x0100
#

表 7-4 に、文字コードとそれに対応する LP requests ログ内の行を示します。

表 7-4 LP requests ログ内の文字コード

文字 

行の内容 

=

区切り行。ユーザーの要求 ID、ユーザー ID (UID)、グループ ID (GID)、元の (フィルタを通す前の) ファイルサイズ、および要求が待ち行列に入れられた時刻が入っている 

C

印刷部数 

D

出力先のプリンタかクラス、または any

F

印刷されたファイル名。この行は印刷されたファイルごとに区切られ、各ファイルは表示された順序で印刷される 

f

使用されたフォーム名 

H

特殊処理 resumehold、または immediate

N

印刷要求が正常に完了したときに使用された警告のタイプ。ユーザーが電子メールで通知を受けたときは M タイプ、端末へのメッセージで通知を受けた場合は W タイプ

O

プリンタ依存の -o オプション (nobanner など)

P

印刷要求の優先順位 

p

印刷されたページのリスト 

r

ユーザーがファイルの「raw」処理を要求したとき (lp -r コマンド) に含まれる 1 文字の行

S

使用された文字セット、印字ホイール、またはカートリッジ 

s

16 進数形式の各ビットの組み合わせで表される要求の結果。印刷サービスの内部では複数のビットが使用される。各ビットとその意味については、表 7-5 を参照

T

バナーページに印刷されるタイトル 

t

ファイル内で見つかった内容形式 

U

印刷要求を出したユーザー名 

x

印刷要求に使用された低速フィルタ 

Y

要求の印刷に使用された印刷フィルタの特殊モードのリスト 

z

要求に使用されたプリンタ。要求がプリンタまたはプリンタクラスの待ち行列に入れられた場合や、要求が別の出力先に移動された場合は、このプリンタは出力先 (D 行) とは異なる

表 7-5 に、LP requests ログ内の結果コードとその説明を示します。

表 7-5 LP requests ログ内の結果コード

結果コード 

説明 

0x0001

要求は保留され再開を待機中 

0x0002

低速フィルタを実行中 

0x0004

低速フィルタを正常に完了 

0x0008

要求はプリンタ上にある 

0x0010

印刷を正常に完了 

0x0020

要求は保留されユーザーによる変更を待機中 

0x0040

要求は取り消し済み 

0x0080

要求は次に印刷される 

0x0100

フィルタ処理または印刷要求に失敗 

0x0200

要求はリモートプリンタに転送中 (現在は使用されない) 

0x0400

ユーザーに通知 

0x0800

通知が動作中 

0x1000

リモートシステムが要求を受け付け済み (現在は使用されない) 

0x2000

管理者が要求を保留した 

0x4000

プリンタのフィルタを変更しなければならなかった 

0x8000

要求は一時的に停止された 

スプーリングディレクトリ

印刷待ち行列に入れられたファイルは、印刷されるまで /var/spool/lp ディレクトリに格納されますが、それがわずか数秒の場合があります。表 7-6 は、/var/spool/lp ディレクトリの内容を示します。

表 7-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

ディレクトリ 

印刷要求が印刷されるまでログが記録される構成済みの各プリンタのディレクトリ。既存の印刷要求を変更した場合も、このログに記録される 

LP 印刷サービスのコマンド

表 7-7 に、頻繁に使用する LP 印刷サービスのコマンドを示します。1M コマンドを使用するには、スーパーユーザーまたは lp にならなければなりません。

表 7-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 印刷サービスの構造」を参照してください。

LP によるファイルの管理とローカル印刷要求のスケジューリングの方法

LP 印刷サービスには、lpsched というスケジューラデーモンが組み込まれています。スケジューラデーモンは、プリンタの設定と構成に関する情報を使用して LP システムファイルを更新します。

また、lpsched デーモンは、ユーザーが要求をアプリケーションから出すかコマンド行から出すかに関係なく、図 7-1 のように、印刷サーバー上のすべてのローカル印刷要求をスケジュールします。さらに、スケジューラはプリンタとフィルタの状態を追跡します。プリンタが要求を印刷し終わると、印刷サーバー上の待ち行列に残っているものがあれば、スケジューラは次の要求をスケジュールします。

図 7-1 lpsched デーモンによるローカル印刷要求のスケジューリング方法

Graphic

各印刷サーバーは、LP スケジューラを 1 つだけ実行していなければなりません。スケジューラは、システムのブート時に (または実行レベル 2 を入力すると)、制御スクリプト /etc/rc2.d/S80lp によって起動されます。システムを再起動しなくても、/usr/lib/lp/lpshut コマンドを使用してスケジューラを停止し、lpsched コマンドを使用して再起動できます。各システムのスケジューラは、lp コマンドによってシステムに出された要求を管理します。

ネットワーク印刷要求のスケジューリング

各印刷クライアントは、ネットワーク経由で直接、印刷サーバーと通信します。通信は、要求コマンド (lplpstatcancellprlpq、または lprm) と印刷サーバー上の印刷サービス間で行われます。これによって、クライアント専用システムにおける印刷システムのオーバーヘッドが軽減され、その結果、拡張性、性能、およびデータの正確性が向上します。

印刷サーバーは、現在、インターネットサービスデーモン (inetd) で印刷要求を待機します。ネットワークから印刷サービスへ要求があると、inetd は「プロトコルアダプタ」と呼ばれるプログラム (in.lpd) を起動します。プロトコルアダプタは、印刷要求を翻訳して、印刷スプーラに送信し、その結果を要求依頼元に戻します。プロトコルアダプタは要求の発生時に起動して、ネットワーク要求の処理が完了すると終了します。これによって、印刷のためのアイドル状態のシステムのオーバーヘッドが解消されます。また、Solaris の以前の印刷機能にあった、ネットワークに接続された印刷サポート用の余分なシステム構成が不要になります。

印刷ファイルにフィルタを適用する

印刷フィルタは、待ち行列内のファイルの内容をある形式から別の形式に変換する印刷サーバー上のプログラムです。

印刷フィルタは、必要に応じて単純なものでも複雑なものでもかまいません。SunOS 5.7 システムソフトウェアの場合は、出力先プリンタが PostScript 形式へのデータ変換を必要とするほとんどの PostScript 印刷状況に対応する印刷フィルタが、/usr/lib/lp/postscript ディレクトリに組み込まれています。PostScript 以外のプリンタ用のフィルタが必要な場合は、そのフィルタを作成し、目的のシステムに追加しなければなりません。

一連の「印刷フィルタ記述子ファイル」が /etc/lp/fd ディレクトリに用意されています。これらの記述子ファイルは、フィルタの特性 (高速フィルタや低速フィルタなど) を記述し、フィルタプログラム (/usr/lib/lp/postscript/postdaisy など) を指します。

プリンタインタフェースプログラムの機能

LP 印刷サービスは、オペレーティングシステムの他の部分と情報をやり取りします。また、標準プリンタインタフェースプログラムを使用して、次の作業を実行します。

LP 印刷サービスは、別のプログラムが指定されなければ、標準インタフェースプログラム (/usr/lib/lp/model ディレクトリに入っています) を使用します。独自のインタフェースプログラムを作成することもできますが、独自のプログラムがプリンタへの接続を終了させないことや正しいプリンタの初期設定を妨げないことを確認しなければなりません。

lpsched デーモンによる印刷ジョブ状態の確認

印刷サーバー上と印刷クライアント上の 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
z slw2
C 1
D slw2
F /etc/motd
P 20
t simple
U irving
s 0x1010
#

プリンタ要求のログの交換間隔を変更する方法

Solaris 2.6 リリースより、プリンタサーバー上の requests ログファイルは、毎日ではなく、毎週交換されることになりました。プリンタサーバーの使用頻度が高い場合は、交換間隔を毎日に再設定できます。

  1. プリンタサーバー上でスーパーユーザーまたは lp になります。

  2. EDITOR 環境変数を設定します。

    # EDITOR=vi
    # export EDITOR
    
  3. lpcrontab ファイルを編集します。

    # crontab -e lp
    
  4. 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
  5. ファイルを保存して、終了します。

ローカル印刷の処理スケジュール

図 7-2 に、ユーザーがローカルプリンタ上に PostScript ファイルを印刷する要求を出したときに実行される処理を示します。ローカルプリンタとは、ユーザーのシステムに接続されたプリンタです。すべての処理はローカルシステムによって実行されます。ただし、印刷要求は、クライアントとサーバーが異なるシステムにある場合と同じ経路をたどります。要求は常に同じ経路をたどり、クライアントからサーバーに流れます。

図 7-2 ローカルでの印刷処理

Graphic

リモート印刷の処理スケジュール

図 7-3 に、SunOS 5.7 および互換印刷クライアント上のユーザーが SunOS 4.1 印刷サーバーに印刷要求を出したときに実行される処理を示します。このコマンドは接続を開いて、印刷サーバーとの通信を直接処理します。

図 7-3 SunOS 5.7 および互換印刷クライアントと SunOS 4.1 印刷サーバー間のネットワーク印刷

Graphic

図 7-4 に、SunOS 5.7 または互換印刷サーバーに印刷要求を出す SunOS 4.1 印刷クライアントを示します。lpd デーモンは、印刷要求のローカル部分と印刷サーバーへの接続を処理します。印刷サーバー上のネットワーク待機プロセス inetd は、ネットワーク印刷要求を待って、プロトコルアダプタを起動して要求を処理します。プロトコルアダプタは lpsched デーモンと通信し、このデーモンが印刷サーバー上で要求を処理します。

図 7-4 SunOS 4.1 印刷クライアントと SunOS 5.7 または互換印刷サーバー間のネットワーク印刷

Graphic

図 7-5 に、SunOS 5.7 または互換印刷クライアントのユーザーが SunOS 5.7 や互換印刷サーバーに印刷要求を出したときに実行される処理を示します。印刷クライアント上の印刷コマンドは、印刷サーバーと直接通信することにより、各印刷要求のローカル部分を処理します。

印刷サーバー上の inetd プロセスは、ネットワーク上の印刷要求を監視し、プロトコルアダプタを起動して、印刷サーバー上の lpsched デーモンと通信します。このデーモンが印刷要求を処理します。

図 7-5 SunOS 5.7 または互換印刷クライアントと SunOS 5.7 または互換印刷サーバー間のネットワーク印刷

Graphic