この節では、プリンタ定義の設定またはリセットの手順を説明します。次のプリンタ定義の一部は、Admintool または Solstice プリンタマネージャを使用して設定できます。次の手順では、迅速にプリンタ定義を設定またはリセットするために、lp コマンドを使用しています。
lpadmin(1M) コマンドを使用してプリンタ記述を追加します。
# lpadmin -p printer-name -D "comment"
p printer-name |
記述を追加するプリンタ名 |
-D "comment" |
設置場所や管理担当者など、プリンタの特性を指定する。シェルが解釈する文字 (*、?、¥、!、^ など) は、一重引用符で囲む |
プリンタ記述は印刷サーバーの /etc/lp/printers/printer-name/comment ファイルに追加されます。
Description 情報をチェックします。
$ lpstat -p printer-name -l
次の例では、コマンドはプリンタ luna のプリンタ記述を追加します。
# lpadmin -p luna -D "Nathans office"
印刷コマンドを使用するときにプリンタ名を入力しなくてもすむように、システムのデフォルトプリンタを指定できます。あるプリンタをデフォルトとして指定する前に、そのプリンタをシステム上の印刷サービスに認識させなければなりません。次のいずれかを設定すれば、システムのデフォルトプリンタを設定できます。
LPDEST 環境変数
PRINTER 環境変数
システムのデフォルトプリンタ (lpadmin -d コマンドまたは Admintool を使用)
アプリケーションがプリンタを指定する場合は、システムのデフォルトプリンタを設定したかどうかに関係なく、その出力先が印刷サービスに使用されます。アプリケーションにプリンタの出力先がない場合や、印刷コマンドの使用時にプリンタ名が指定されていない場合は、印刷コマンドはデフォルトプリンタを特定の順序で検索します。表 4-1 は、システムのデフォルトプリンタの検索順序を示しています。
表 4-1 デフォルトプリンタの検索順序
検索順序 |
/usr/bin/lp コマンドを使用 |
SunOS/BSD 互換コマンド (lpr、lpq、または lprm) を使用 |
---|---|---|
1 |
LPDEST 変数 |
PRINTER 変数 |
2 |
PRINTER 変数 |
LPDEST 変数 |
3 |
システムのデフォルトプリンタ |
システムのデフォルトプリンタ |
lpadmin コマンドを使用してシステムのデフォルトプリンタを設定します。
# lpadmin -d [printer-name]
-d printer-name |
システムのデフォルトプリンタとして割り当てるプリンタ名。printer-name を指定しなければ、システムはデフォルトプリンタなしで設定される |
lpstat コマンドを使用して、システムのデフォルトプリンタをチェックします。
$ lpstat -d
次の例では、プリンタ luna をシステムのデフォルトプリンタとして設定します。これは、LPDEST または PRINTER 環境変数が設定されていない場合、luna がシステムのデフォルトプリンタとして使用されることを意味します。
# lpadmin -d luna # lpstat -d system default destination: luna
バナーページには、印刷要求を出したユーザー、印刷要求 ID、要求の印刷時期が出力されます。また、バナーページには、ユーザーがプリントアウトを識別しやすいように変更可能なタイトルを付けることもできます。
バナーページは、印刷ジョブの所有者を簡単に識別できるようにします。これは、多数のユーザーが同じプリンタにジョブを依頼するときに特に便利です。ただし、バナーページを印刷すると用紙の消費量が増えますが、1 台のプリンタを使用するユーザーが少ない場合は必要ないことがあります。また場合によっては、バナーページを印刷しない方がよいこともあります。たとえば、プリンタに支払い小切手などの特殊な用紙やフォームが装着されている場合は、バナーページを印刷すると問題が起きることがあります。
デフォルトでは、印刷サービスはバナーページを強制的に印刷します。ただしユーザーは、印刷要求を出すときにバナーページの印刷をオフにするかどうかを選択できます。この選択肢は lpadmin コマンドまたは Admintool を通じて設定できます。ユーザーが選択できるようにする場合、ユーザーがバナーページの印刷をオフに切り替えるには、-o nobanner オプションを使用する必要があります。
また、プリンタのバナーページをオフにして印刷できないようにすることもできます。これは、バナーページが不要な状況では重要です。バナーページの印刷は、コマンド行インタフェースからでなければオフにできません。詳細は、「バナーページをオフにする方法」を参照してください。
lpadmin コマンドを使用してバナーページをオプションにします。
# lpadmin -p printer-name -o nobanner
-p printer-name |
バナーページをオプションにするプリンタ名 |
-o nobanner |
ユーザーが印刷要求を出すときにバナーページなしを指定できるようにする |
すべての印刷要求でバナーページを強制的に印刷させたい場合は、-o banner オプションを指定します。
バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。
次のコマンドの出力には、「Banner not required」という行が入っています。
$ lpstat -p printer-name -l
次の例では、コマンドはユーザーがプリンタ luna 上でバナーページなしを要求できるようにします。
# lpadmin -p luna -o nobanner
ディレクトリを /etc/lp/interfaces ディレクトリに変更します。
# cd /etc/lp/interfaces
バナーページをオフにしたいプリンタ名が付いているファイルを編集します。
nobanner="yes"
バナーページを再びオンにする場合は、nobanner 変数を no に変更します。
バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。
プリンタに印刷要求を出して、バナーページが印刷されないことを確認します。
印刷サービスを使用すると、複数のローカルプリンタを 1 つのクラスにグループ化できます。この作業は、lpadmin -c コマンドを使用しなければ実行できません。
プリンタクラスを設定すると、ユーザーは印刷要求の出力先として (個々のプリンタではなく) そのクラスを指定できます。そのクラスで空いている最初のプリンタが印刷に使用されます。その結果、プリンタはできる限りビジーに保たれるので、応答時間が短縮されます。
印刷サービスに認識されるデフォルトのプリンタクラスはなく、定義したプリンタクラスのみが存在することになります。プリンタクラスを定義するには、次の 3 つの方法があります。
プリンタタイプ別 (PostScript など)
場所別 (5 階など)
作業グループや部署別 (経理など)
また、1 つのクラスには特定の順序で使用される複数のプリンタを含めることができます。LP 印刷サービスでは、常に各プリンタがクラスに追加された順番に従って利用できるプリンタをチェックします。したがって、最初に高速プリンタにアクセスしたい場合は、高速プリンタを低速プリンタよりも先にクラスに追加します。その結果、高速プリンタで最大限の印刷要求が処理されることになります。低速プリンタは、高速プリンタが使用されているときのバックアッププリンタとして確保されます。
印刷要求の負荷は、ローカルプリンタのクラス内のプリンタ間でのみ調整されます。
クラス名も、プリンタ名と同様に固有の名前でなければなりません。クラス名は 14 文字以内の英数字で、下線を使用できます。
プリンタクラスは定義しなくてもかまいません。プリンタクラスを使用するとネットワーク上のユーザーに利点があると判断した場合にのみ、クラスを追加してください。
lpadmin コマンドを使用して、プリンタのクラスを定義します。
# lpadmin -p printer-name -c printer-class
-p printer-name |
プリンタのクラスに追加するプリンタ名 |
-c printer-class |
プリンタのクラス名 |
指定したプリンタが、印刷サーバーの /etc/lp/classes/printer-class ファイル内でそのクラスのリストの最後に追加されます。プリンタクラスが存在しない場合は、作成されます。
lpstat コマンドを使用して、プリンタクラスのプリンタを表示します。
$ lpstat -c printer-class
次の例では、コマンドはプリンタ luna をクラス roughdrafts に追加します。
# lpadmin -p luna -c roughdrafts
事前に選択しておくと、印刷サービスはプリンタ障害を検出したときに通知できます。次のいずれかの方法を選択すると、lpadmin -A コマンドまたは Admintool を使用してプリンタ障害通知を受け取ることができます。
root がログインしている端末にメッセージを書き込む
root に電子メールを送る
通知しない
ただし、lpadmin -A コマンドを使用すると、他にも選択したプログラムで指定されるメッセージをオプションとして受信できます。また、すでに知っているエラーに関する通知をオフにすることもできます。
障害通知を配信するプログラムを指定しなければ、障害警告の内容は事前に定義済みのメッセージです。このメッセージは、プリンタが印刷を停止しており、解決が必要であることを示します。
表 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 |
警告を送信しない。プリンタの障害警告を指定しない場合は、これがデフォルト値である |
lpadmin コマンドを使用してプリンタの障害警告を設定します。
# lpadmin -p printer-name -A alert [-W minutes]
-p printer-name |
プリンタ障害の警告を指定するプリンタ名 |
-A alert |
プリンタ障害が起きたときに出される警告の種類を指定する。alert に有効な値については、表 4-2 を参照。有効な値は mail、write、quiet などである |
-W minutes |
障害警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送信される |
障害警告の設定は、印刷サーバーの /etc/lp/printers/printer-name/alert.sh ファイルに入力されます。
次のコマンドの出力から、「On fault」見出しに続く情報をチェックします。
$ lpstat -p printer-name -l
次の例で、コマンドは障害警告をユーザー joe に電子メールで送信し、その後は 5 分ごとに送信するようにプリンタ mars を設定します。
# lpadmin -p mars -A 'mail joe' -W 5
次の例で、コマンドは障害警告をコンソールウィンドウに送信し、その後は 10 分ごとに送信するようにプリンタ venus を設定します。
# lpadmin -p venus -A write -W 10
次の例で、コマンドはプリンタ mercury の障害警告を停止します。
# lpadmin -p mercury -A none
次の例で、コマンドはプリンタ venus の障害が解決されるまで、障害警告を停止します。
# lpadmin -p venus -A quiet
障害通知を送信しないことを選択した場合には、問題を解決できるように、印刷障害を検出する方法が必要です。LP 印刷サービスは、障害のあるプリンタを継続して使用しません。プリンタ障害の警告に加えて、印刷要求が必要とするときに、印字ホイール、フォントカートリッジ、およびフォームを取り付けるようにシステム管理者に知らせる警告も設定できます。
lpadmin -F コマンドを使用すると、プリンタ専用の障害回復オプションを定義できます。
プリンタ障害は、用紙切れやトナーカートリッジの交換が必要であるなど、きわめて単純な場合があります。より重大な問題としては、完全なプリンタ障害や電源障害などがあります。プリンタ障害を解決すると、障害が発生したときに有効だった印刷要求は、次のいずれかの方法で印刷を開始します。
印刷を最初から開始する
印刷を停止したページの先頭から印刷を再開する
プリンタを使用可能にした後に、印刷を停止したページの先頭から印刷を再開する
印刷を停止したページの先頭から印刷を再開するには、印刷フィルタが必要です。印刷フィルタは、プリンタに使用される制御シーケンスを記録してページ境界を追跡します。この処理は、印刷サービスに使用されるデフォルトフィルタでは実行できません。指定した印刷フィルタで回復処理を実行できなければ、印刷サービスから通知されます。フィルタの作成方法については、「新しい印刷フィルタを作成する方法」を参照してください。
プリンタ障害を解決した直後に印刷を再開したい場合は、enable コマンドを使用してプリンタを使用可能にします。
表 4-3 は、lpadmin -F コマンドでプリンタに設定できる障害回復値を示しています。
表 4-3 プリンタ障害回復の値
-F recover-options の値 |
説明 |
---|---|
beginning |
障害回復後に、ファイルの先頭から印刷を再開する |
continue | |
wait |
障害回復後に、プリンタを使用可能にするまで印刷が停止される。(enable コマンドで) プリンタを使用可能にすると、印刷は停止されたページの先頭から始まる。この回復オプションには印刷フィルタが必要 |
印刷サーバーにスーパーユーザーまたは lp としてログインします。
lpadmin(1M) コマンドを使用してプリンタ障害から回復する方法を設定します。
# lpadmin -p printer-name -F recovery-options
-p printer-name |
障害からの回復方法を指定するプリンタ名 |
-F recovery-options |
beginning、continue、wait の 3 つの有効な回復オプション。recovery-options に有効な値については、表 4-3 を参照 |
障害回復の設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。
次のコマンドの出力から、「After fault」見出しに続く情報をチェックします。
$ lpstat -p printer-name -l
次の例では、コマンドは、印刷が停止されたページの先頭から再開するようにプリンタ luna を設定します。
# lpadmin -p luna -F continue
利用できるプリンタの一部またはすべてにアクセスできるユーザーを制限する必要がある場合があります。たとえば、一部のユーザーが高品質プリンタ上で印刷できないようにして経費を抑えることができます。プリンタへのユーザーアクセスを制限するには、印刷サーバー上で lpadmin -u コマンドを使用して「許可」リストと「拒否」リストを作成できます (Admintool を使用すると、許可リストのみを作成できます)。どちらのリストも作成しなければ、プリンタはそこにアクセスできる全ユーザーが利用できます。
許可リストには、指定したプリンタへのアクセスを許可されるユーザー名が入っています。拒否リストには、指定したプリンタへのアクセスを拒否されるユーザー名が入っています。
許可リストと拒否リストには、次の規則が適用されます。
リストの状態 |
アクセスの制限 |
---|---|
許可リストも拒否リストも作成しない、または両方のリストが空 |
全ユーザーがそのプリンタを使用できる |
許可リストで all を指定する |
そのプリンタには全ユーザーがアクセスできる |
拒否リストで all を指定する |
サーバー上の lp と root 以外の全ユーザーのアクセスが拒否される |
許可リストにエントリを作成する |
リストに指定されているユーザーだけがプリンタにアクセスできる。拒否リストは無視される |
拒否リストを作成し、許可リストは作成しないか許可リストを空にする |
拒否リストで指定されたユーザーはプリンタにアクセスできない |
実際にプリンタへのアクセスを制御しているのは印刷サーバーなので、許可リストと拒否リストを作成できるのは印刷サーバー上でだけです。許可リストと拒否リストを作成した場合、印刷サーバーは、プリンタへのユーザーアクセスを排他的に制御します。
表 4-4 は、プリンタへのユーザーアクセスを制限するために許可リストまたは拒否リストに追加できる値を示しています。
表 4-4 許可リストと拒否リストの値
user-list の値 |
説明 |
---|---|
user |
任意のシステム上の特定ユーザー |
all |
すべてのシステム上の全ユーザー |
none |
すべてのシステム上の全ユーザーが該当しない |
system!user |
特定システム上の特定ユーザー |
!user |
ローカルシステム上の特定ユーザー |
all!user |
任意のシステム上の特定ユーザー |
all!all |
すべてのシステム上の全ユーザー |
system!all |
特定システム上の全ユーザー |
!all |
ローカルシステム上の全ユーザー |
lpadmin コマンドを使用して、プリンタへのユーザーアクセスを許可または拒否します。
# lpadmin -p printer-name -u allow:user-list [deny:user-list]
-p printer-name |
許可または拒否ユーザーアクセスリストを適用するプリンタ名 |
-u allow:user-list |
許可ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはコンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。user-list に有効な値については、表 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-list に none を指定した場合、印刷サーバー用に次のファイルは作成されません。
/etc/lp/printers/printer-name/alert.sh
/etc/lp/printers/printer-name/alert.var
/etc/lp/printers/printer-name/users.allow
/etc/lp/printers/printer-name/users.deny
次のコマンドの出力から、「Users allowed」または「Users denied」見出しに続く情報をチェックします。
$ lpstat -p printer-name -l
次の例で、コマンドはユーザー nathan と george によるプリンタ luna へのアクセスのみを許可します。
# lpadmin -p luna -u allow:nathan,george
次の例で、コマンドはユーザー nathan と george によるプリンタ asteroid へのアクセスを拒否します。
# lpadmin -p asteroid -u deny:"nathan george"