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

印刷要求の管理

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

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

表 5-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    Jul 12 17:34

次の例は、ユーザー paul には待ち行列に入っている印刷要求がないことを示しています。


$ lpstat -u paul

次の例は、プリンタ moon に 2 つの印刷要求があることを示しています。


$ lpstat -o moon
moon-78    root     1024   Jul 14 09:07
moon-79    root     1024   Jul 14 09:08

印刷の処理または停止

enable(1) コマンドと disable(1) コマンドを使用すると、プリンタが待ち行列に入っている要求の印刷を処理または停止するかを制御できます。プリンタを使用不可にすると、プリンタは待ち行列内の要求の印刷を停止します。ただし、要求はそのまま待ち行列に追加されます (要求が待ち行列に追加されないように、プリンタを設定して印刷要求を拒否させなければなりません。印刷要求を拒否する方法については、「印刷要求の受け付けまたは拒否」を参照してください)。

Solaris プリンタマネージャを使用してプリンタを追加すると、プリンタは有効になり印刷要求を受け付けます。Solaris プリンタマネージャは、それ以上のプリンタ管理は提供しません。

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

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

図 5-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 コマンドを使用すると、印刷要求が格納される印刷待ち行列のオンとオフを切り替えることができます。

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

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

コマンド 

機能 

accept

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

enable

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

reject

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

disable

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

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

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

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

図 5-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 に有効な値については、表 5-6 を参照

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

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

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


# lp -i asteroid-79 -q 1