Solaris のシステム管理

第 72 章 印刷時の問題の解決

この章では、印刷サービスの設定または管理の際に発生する可能性のある印刷上の問題を解決する方法について説明します。

この章では次の手順を説明します。

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

問題解決のヒント

プリンタを設定し終わった後に、何も印刷されないことがあります。また、若干は処理されるものの、何か印刷しても正しく出力されない、または読みづらいなど、期待どおりの結果が得られないことがあります。このような問題が発生すると、他にも次のような問題が発生することがあります。


注 -

この章の推奨事項の多くはパラレルプリンタに関連しますが、より一般的なシリアルプリンタにも当てはまります。


プリンタ追加時の問題の解決方法

Solaris 2.6 リリースをインストールした後 Admintool を使用してリモートプリンタへのアクセスを追加しようとすると、次のメッセージが表示される場合があります。

Admintool: Error
add remote printer failed

この場合は、SunSoft 印刷クライアントソフトウェアがネットワークにインストールされていて、リモートプリンタがすでに利用できる可能性があります。プリンタを追加する前に lpstat -t コマンドを使用して、プリンタが利用できるかどうかを確認してください。

出力されない (印刷されない) 場合の解決方法

何も印刷されないときは、次の部分をチェックします。

バナーページは印刷されるのに、他には何も印刷されない場合は、不正な出力の特殊ケースです。「出力が正しくない場合の解決方法」を参照してください。

ハードウェアのチェック

ハードウェアは、最初にチェックすべきポイントです。文字どおり、プリンタが電源に接続され、電源がオンになっているかどうかを確認してください。また、ハードウェア付属のマニュアルを参照して、ハードウェアの設定値を調べてください。コンピュータによっては、プリンタポートの特性を変更するハードウェアスイッチが付いているものがあります。

プリンタハードウェアには、プリンタ、コンピュータへの接続ケーブル、ケーブルの先端を接続するポートが含まれます。一般的なアプローチとしては、プリンタからコンピュータへと順番に調べてください。まず、プリンタをチェックします。次に、ケーブルがプリンタに接続される箇所をチェックします。次に、ケーブルをチェックします。最後に、ケーブルがコンピュータに接続されている箇所をチェックします。

ネットワークのチェック

よく問題が発生するのは、印刷クライアントから印刷サーバーに送られるリモート印刷要求です。印刷サーバーと印刷クライアント間でネットワークアクセスが使用可能になっているかどうかを確認してください。

ネットワークがネットワーク情報サービスプラス (NIS+) を実行している場合は、システム間のアクセスを使用可能にする方法について、『NIS+ と FNS の管理』を参照してください。ネットワークがネットワーク情報サービス (NIS) または NIS+ を実行していない場合は、印刷サーバーと印刷クライアントを設定する前に、各クライアントシステムのインターネットアドレスとシステム名を、印刷サーバー上の /etc/hosts ファイルに組み込んでください。また、印刷サーバーのインターネットアドレスとシステム名を、各印刷クライアントシステムの /etc/hosts ファイルに組み込まなければなりません。

LP 印刷サービスのチェック

正常に印刷するには、印刷サーバーと印刷クライアント上で LP スケジューラが動作していなければなりません。動作していない場合は、/usr/lib/lp/lpsched コマンドを使用して起動する必要があります。スケジューラの起動に問題がある場合は、「印刷スケジューラを再起動する方法」を参照してください。

スケジューラが動作していることの他に、出力を行う前にプリンタが使用可能になっていて、印刷要求を受け付けられる状態になっていなければなりません。LP 印刷サービスがプリンタへの要求を受け付けなければ、依頼した印刷要求は拒否されます。その場合、一般にユーザーは印刷要求を依頼すると警告メッセージを受け取ります。LP 印刷サービスがプリンタで使用可能になっていないと、印刷要求はプリンタが使用可能になるまでシステム上の待ち行列に残ります。

一般に、次のようにして印刷時の問題を分析してください。

「印刷時の問題の解決」に掲載されている手順では、この方法を使用して LP 印刷サービスに関する各種の問題に対処する方法を説明します。

LP 印刷サービスの基本的な問題解決の手順で問題を解決できない場合は、当てはまる特定のクライアント/サーバーのケースごとに問題解決の手順を実行する必要があります。

出力が正しくない場合の解決方法

プリンタと印刷サービスソフトウェアが正しく構成されていない場合は、プリンタで印刷されても、期待どおりに出力されないことがあります。

プリンタタイプとファイル内容形式のチェック

LP 印刷サービスでプリンタを設定するときに間違ったプリンタタイプを使用すると、不適切なプリンタ制御文字がプリンタに送られる可能性があります。その結果は予測できません。何も印刷されない、出力が読みづらい、正しい文字セットやフォントで印刷されないなどの結果となります。

SunOS 5.x 印刷クライアントまたは SunOS 5.x 印刷サーバーで間違ったファイル内容形式を指定した場合、バナーページは印刷できますが、他には何も印刷されません。プリンタに指定されたファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ユーザーがプリンタにファイルを送信すると、フィルタなしでファイルはプリンタに直接送信されます。プリンタが実際にその形式を処理できないときに、問題が発生します。

印刷クライアントの設定時には、ファイル内容形式が印刷サーバーと印刷クライアントの両方で正しくなければならないので、間違いをおかす機会が多くなります。推奨する方法は、印刷クライアントのファイル内容形式を any に設定することです。こうすると、ファイルはサーバーに直接送信され、フィルタが必要かどうかはサーバー側で決定されます。したがって、ファイル内容形式は、サーバー側だけで正しく指定すればよいことになります。

印刷クライアント側でファイル内容を指定し、フィルタリングの負荷をサーバーからクライアントに移すことができますが、内容の形式は印刷サーバー側でサポートしなければなりません。

stty 設定値のチェック

デフォルトの stty (標準端末) 設定値がプリンタから要求される設定値と一致しないと、多数のフォーマット上の問題が生じる可能性があります。この後の節では、設定値の一部が間違っているときに発生する問題について説明します。

ボーレート設定値が正しくない場合

コンピュータのボーレート設定値がプリンタのボーレート設定値と一致しないときは、通常何らかの出力はありますが、希望する出力は得られません。特殊文字や不要なスペースが異常に混じったランダムな出力が表示されます。LP 印刷サービスのデフォルトは 9600 ボーレートです。


注 -

プリンタがパラレルポートで接続されている場合、ボーレート設定値は関係ありません。


パリティ設定値が正しくない場合

プリンタによっては、パリティビットを使用して、印刷用に受け取ったデータに伝送中に誤りがなかったことを確認するものがあります。コンピュータとプリンタのパリティビットの設定値は一致しなければなりません。一致しない場合、文字によってはまったく印刷されないか、他の文字で置き換えられることもあります。その出力は、文字間隔が正しく、ほとんどの文字が正しい位置にあるので、一見正しいように見えます。LP 印刷サービスの場合、デフォルトではパリティビットは設定されません。

タブ設定値が正しくない場合

ファイルにタブが含まれていても、プリンタがタブを予期していなければ、印刷出力にはファイルの内容が完全に印刷されますが、テキストは右マージンに対して正確に配置されないことがあります。また、プリンタのタブ設定が間違っていると、テキストに左マージンがない、テキストがつながってしまう、テキストがページの一部分に集中する、間違ってダブルスペースになってしまうなどの問題が発生します。デフォルトでは、タブは 8 スペースごとに設定されます。

Return 設定値が正しくない場合

出力がシングルスペースのはずなのにダブルスペースになる場合は、プリンタのタブ設定値が間違っているか、プリンタが Return の後に 1 行追加されています。LP 印刷サービスは、改行の前に 1 つ Return を追加するので、その組み合わせによって 2 行の改行が発生します。

ジグザグに印刷される場合は、改行の前に Return を送る stty オプションの onlcr が設定されていません。stty=onlcr オプションはデフォルトで設定されますが、他の印刷問題を解決しようとしたときに、それをクリアした可能性があります。

ハングした LP 印刷サービスコマンドの解決方法

lp コマンド (lpsystemlpadminlpstat など) を入力しても何も発生しない (エラーメッセージ、状態情報、またはプロンプトが表示されない) 場合は、LP スケジューラに問題が発生した可能性があります。このような問題は、一般に LP スケジューラを停止して再起動すれば解決できます。操作手順については、「印刷スケジューラを停止する方法」「印刷スケジューラを再起動する方法」を参照してください。

アイドル状態になった (ハングした) プリンタの解決方法

プリンタが印刷要求を待ち行列に入れているのに、アイドル状態になっていることがあります。プリンタがアイドル状態になっている場合は、次の原因が考えられます。

印刷フィルタのチェック

低速印刷フィルタは、プリンタを拘束しないようにバックグラウンドで実行されます。フィルタリングが必要な印刷要求は、フィルタリングが終わるまで印刷されません。

プリンタ障害のチェック

LP 印刷サービスが障害を検出すると、印刷はすぐにではありませんが自動的に再開されます。LP 印刷サービスは約 5 分間待機し、要求が正常に印刷されるまで試行し続けます。プリンタを使用可能にすると、すぐに再試行できます。

ネットワーク上の問題のチェック

ネットワーク経由でファイルを印刷するときには、次の問題が発生することがあります。

ローカル待ち行列で停止する印刷要求

印刷サーバーに依頼された印刷要求は、次の原因でクライアントシステムの待ち行列で停止することがあります。

問題の原因を突き止めるときには、新しい要求を待ち行列に追加しないでください。詳細は、「プリンタへの印刷要求を受け付けるまたは拒否する方法」 を参照してください。

リモート待ち行列で停止する印刷要求

印刷要求が印刷サーバーの待ち行列で停止する場合は、プリンタが使用不可になっている可能性があります。プリンタが要求を受け付けても処理しないとき、その要求は印刷するために待ち行列に入れられます。プリンタを使用可能にすると、それ以外に問題がなければ、待ち行列内の印刷要求は印刷されます。

矛盾した状態メッセージの解決方法

ユーザーが印刷要求を入力すると、クライアントシステムからは受け付けられたことが通知され、印刷サーバーからは印刷要求が拒否されたことを示すメールを受け取ることがあります。これらの矛盾したメッセージは、次の原因で発生することがあります。

ローカルユーザーが印刷サーバー上でプリンタにアクセスできるように、これらのジョブコンポーネントの定義が印刷クライアントと印刷サーバーの両方で登録されているかどうかを確認してください。

印刷時の問題の解決

この節では、次の手順について説明します。

プリンタに出力されない問題を解決する方法

この作業には、次の問題解決の手順が含まれています。印刷要求をプリンタに出したのに何も印刷されない場合は、これらの手順を試してください。

該当する印刷クライアント/サーバーのケースに進む前に、上記のうち最初の 3 つの手順をリストの順に試してください。ただし、バナーページは印刷されても他に何も印刷されない場合は、「出力が正しくない場合の問題を解決する方法」の説明に進んでください。

ハードウェアをチェックするには

  1. プリンタがコンセントに接続され、電源がオンになっているかどうかを確認します。

  2. ケーブルがプリンタのポートと、システムまたはサーバーのポートに接続されているかどうかを確認します。

  3. そのケーブルが正しいケーブルであり、欠陥がないことを確認します。

    ハードウェア付属のマニュアルを参照してください。プリンタがシリアルポートに接続されている場合は、そのケーブルでハードウェアフロー制御がサポートされることを確認してください。NULL モデムアダプタでは、この機能がサポートされます。表 72-1 は、NULL モデムケーブル用のピン構成を示しています。

    表 72-1 NULL モデムケーブル用のピン構成
     

    ホスト 

    プリンタ 

    Mini-Din-8 

    25-Pin D-sub 

    25-Pin D-sub 

    -  

    1(FG) 

    1(FG) 

    3(TD) 

    2(TD) 

    3(RD) 

    5(RD) 

    3(RD) 

    2(TD) 

    6(RTS) 

    4(RTS) 

    5(CTS) 

    2(CTS) 

    5(CTS) 

    4(RTS) 

    4(SG) 

    7(SG) 

    7(SG) 

    7(DCD) 

    6(DSR)、8(DCD) 

    20(DTR) 

    1(DTR) 

    20(DTR) 

    6(DSR)、8(DCD) 

  4. ポート用のハードウェアスイッチが正しく設定されていることを確認します。

    正しい設定については、プリンタのマニュアルを参照してください。

  5. プリンタが動作するかどうかを確認します。

    プリンタにセルフテスト機能が付いている場合は、それを使用します。プリンタのセルフテストの詳細は、プリンタのマニュアルを参照してください。

  6. コンピュータとプリンタのボーレートの設定値が正しいかどうかを確認します。

    コンピュータとプリンタのボーレートの設定値が一致しなければ、何も印刷されないことがあり、さらに正しく出力されない場合もあります。詳細は、「出力が正しくない場合の問題を解決する方法」を参照してください。

ネットワークをチェックするには

  1. ping コマンドを使用すると、印刷サーバーと印刷クライアント間のネットワークが正しく設定されているかどうかを確認できます。

    print_client# ping print_server 
    print_server is alive
    print_server# ping print_client 
    print_client not available

    システムが動作していることを示すメッセージが表示されれば、そのシステムにアクセスできることがわかるので、そのネットワークは正常です。また、このメッセージは、入力したホスト (システム) 名が、ネームサーバーまたはローカルの /etc/hosts ファイルによって IP アドレスに変換されたことを示します。変換されていない場合は、IP アドレスを入力する必要があります。

    not available」というメッセージが表示された場合は、次の 3 点を確認してください。まず、NIS または NIS+ はサイトでどのように設定されているか。次に、印刷サーバーと印刷クライアントが相互に通信できるように付加的な作業が必要か。最後に、サイトが NIS または NIS+ を実行していない場合、各印刷クライアントの /etc/hosts ファイルに印刷サーバーの IP アドレスを入力し、印刷サーバーの /etc/hosts ファイルにすべての印刷クライアントの IP アドレスを入力したか確認します。

  2. (SunOS 5.0 - 5.1 印刷サーバーのみ) listen ポートモニターが正しく構成されているかどうかを確認します。

  3. (SunOS 5.0 - 5.1 印刷サーバーのみ) ネットワーク待機サービスが印刷サーバー上のポートモニターに登録されているかどうかを確認します。

LP 印刷サービスの基本機能をチェックするには

この手順では、基本 LP 印刷サービス機能をチェックする例として、プリンタ luna を使用しています。

  1. 印刷サーバー上と印刷クライアント上で、LP 印刷サービスが動作していることを確認します。

    1. このコマンドは、LP スケジューラが動作しているかどうかを表示します。

      # lpstat -r
      scheduler is running
    2. スケジューラが動作していない場合は、スーパーユーザーまたは lp になり、スケジューラを起動します。

      # /usr/lib/lp/lpsched
      

      スケジューラを起動できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。

  2. 印刷サーバー上と印刷クライアント上で、プリンタが要求を受け付けていることを確認します。

    1. プリンタが要求を受け付けていることを確認します。

      # lpstat -a
      mars accepting requests since Jun 04 16:13 1997
      luna not accepting requests since Jun 04 08:10 1997
      unknown reason

      このコマンドは、LP システムがシステム用に構成された各プリンタの要求を受け付けているかどうかを確認します。

    2. プリンタが要求を受け付けていない場合は、スーパーユーザーまたは lp になり、プリンタが印刷要求を受け付けるようにします。

      # accept luna
      

      これで、指定したプリンタは要求を受け付けます。

  3. 印刷サーバー上と印刷クライアント上で、プリンタが依頼された印刷要求の印刷で使用可能になっているかどうかを確認します。

    1. プリンタが使用可能になっていることを確認します。

      # lpstat -p luna
      printer luna disabled since Jun 04 09:40 1997.
      available.
      unknown reason

      このコマンドは、プリンタの状態に関する情報を表示します。プリンタ名を省略すると、システム用に設定されたすべてのプリンタに関する情報を表示できます。次の例は、使用不可になっているプリンタを示しています。

    2. プリンタが使用不可になっている場合は、スーパーユーザーまたは lp になり、プリンタを使用可能にします。

      # enable luna
      printer "luna" now enabled.

      指定したプリンタが、印刷要求の処理に使用可能になります。

  4. 印刷サーバー上で、プリンタが正しいシリアルポートに接続されていることを確認します。

    1. プリンタが正しいシリアルポートに接続されていることを確認します。

      # lpstat -t
      scheduler is running
      system default destination: luna
      device for luna: /dev/term/a

      device for printer-name」というメッセージは、ポートアドレスを示します。LP 印刷サービスの接続先のポートにケーブルが接続されているかどうかを確認します。ポートが正しければ、手順 5に進みます。

    2. スーパーユーザーまたは lp になります。

    3. ポートを表すデバイスファイルのファイル所有権を変更します。

      # chown lp device-filename
      

      このコマンドは、特殊なユーザー lp をデバイスファイルの所有者として割り当てます。このコマンドで、device-filename はデバイスファイル名です。

    4. プリンタポートのデバイスファイルのアクセス権を変更します。

      # chmod 600 device-filename
      

      このコマンドにより、root または lp だけがプリンタポートデバイスファイルにアクセスできます。

  5. 印刷サーバー上と印刷クライアント上で、プリンタが正しく構成されていることを確認します。

    1. プリンタが適切に設定されていることを確認します。

      # lpstat -p luna -l
      printer luna is idle. enabled since May 20 17:39 1997. available.
              Content types: postscript
              Printer types: PS

      上の例は、正しく設定された PostScript プリンタと、そのプリンタを印刷要求の処理に利用できることを示しています。プリンタタイプとファイル内容形式が正しい場合は、手順 6 に進みます。

    2. プリンタタイプまたはファイル内容形式が違っている場合は、印刷クライアント上で、プリンタタイプを unknown に設定し、内容形式を any に設定してください。

      # lpadmin -p printer-name -T printer-type -I file-content-type
      
  6. 印刷サーバー上で、プリンタがプリンタ障害のために待機していないことを確認します。

    1. プリンタ障害のためにプリンタが待機していないことを確認します。

      # lpadmin -p printer-name -F continue 
      

      このコマンドは LP 印刷サービスに対して、障害のために待機していない場合は続行するように指示します。

    2. プリンタを再び使用可能にすることによって、すぐに再試行させます。

      # enable printer-name 
      
    3. (省略可能) プリンタ障害をすぐに通知するように、LP 印刷サービスに指示します。

      # lpadmin -p printer-name -A 'write root'
      

      このコマンドは LP 印刷サービスに対して、プリンタが障害を起こした場合に、root に書き込むというデフォルトポリシーを設定し、root がログインした端末にプリンタ障害メッセージを送るように指示します。これにより、問題を修正するときに障害通知をすぐに受け取れます。

  7. プリンタがログイン端末として間違った設定になっていないかどうかを確認します。


    注 -

    ログイン端末としてプリンタを設定する作業では誤りをおかしやすいので、当てはまらないように思われる場合にも、必ず設定値を確認してください。


    1. ps -ef コマンドの出力で、プリンタポートのエントリを探します。

      # ps -ef
          root   169   167  0   Apr 04 ?        0:08 /usr/lib/saf/listen tcp
          root   939     1  0 19:30:47 ?        0:02 /usr/lib/lpsched
          root   859   858  0 19:18:54 term/a   0:01 /bin/sh -c ¥ /etc/lp/
      interfaces/luna
      luna-294 rocket!smith "passwd¥n##
      #

      このコマンドの出力で、プリンタポートのエントリを探します。上の例で、ポート /dev/term/a はログイン端末として間違って設定されています。この行の最後に "passwd¥n## 情報が付いているのでわかります。ポートが正しく設定されている場合は、この手順の最後を飛ばしてください。

    2. 印刷要求を取り消します。

      # cancel request-id
      

      このコマンドで、request-id は取り消したい印刷要求の要求 ID 番号です。

    3. プリンタポートをログインデバイス以外のものとして設定します。

      # lpadmin -p printer-name -h
      
    4. ps -ef コマンドからの出力をチェックして、プリンタポートがログインデバイスではなくなったことを確認します。

      基本的な LP 印刷サービス機能に印刷時の問題の原因が見つからない場合は、次の中から該当するクライアント/サーバーの手順に進んでください。

SunOS 5.x クライアントから SunOS 5.x 印刷サーバーへの印刷をチェックするには

  1. まだチェックしていない場合は、印刷サーバー上で LP 印刷サービスの基本機能をチェックします。

    基本機能をチェックする手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。印刷クライアントから要求が出されたときに何も印刷されない原因を探す前に、プリンタがローカルで正しく動作することを確認してください。

  2. まだチェックしていない場合は、印刷クライアント上で LP 印刷サービスの基本機能をチェックします。

    基本機能をチェックする手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。クライアントからの要求が印刷される前に、印刷クライアント上で LP スケジューラが動作していなければならず、またプリンタが使用可能であり、要求を受け付けられる状態になっていなければなりません。


    注 -

    次の手順のほとんどは、root または lp としてログインして実行しなければなりません。


  3. 印刷サーバーがアクセス可能であることを確認します。

    1. 印刷クライアント上で、ping print-server と入力して Return キーを押します。このコマンドにより、印刷サーバーに応答を求める要求が送られます。

      print_client# ping print_server
      

      print_server not available」というメッセージを受け取った場合は、ネットワークに問題があります。

  4. SunOS 5.1 印刷クライアント上でのみ、Admintool の 「プリンタの変更 (Modify Printer)」ウィンドウを表示して、印刷サーバーのタイプが s5 になっていることを確認します。

  5. このコマンドでは、印刷サーバーが正常に動作しているかどうかが表示されます。

    # lpstat -t luna
    scheduler is running
    system default destination: luna
    device for luna: /dev/term/a
    luna accepting requests since May 20 17:41 1997. available.
    printer luna now printing luna-314. enabled since May 20 17:41 1997. 
    available.
    luna-129            root               488   May 20 17:45
    #

    上の例は、印刷サーバーが起動され、動作していることを示しています。

  6. 印刷サーバーが正常に動作していない場合は、手順 1 に戻ります。

SunOS 5.x クライアントから SunOS 4.1 印刷サーバーへの印刷をチェックするには

  1. まだチェックしていない場合は、印刷クライアント上で LP 印刷サービスの基本機能をチェックします。

    手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。

  2. 印刷サーバーがアクセス可能であることを確認します。

    1. 印刷クライアント上で、ping print-server と入力して Return キーを押します。このコマンドにより、印刷サーバーに応答を求める要求が送られます。

      print_client# ping print_server
      

      print_server not available」というメッセージを受け取った場合は、ネットワークに問題があります。

  3. 印刷サーバー上で lpd デーモンが動作していることを確認します。

    1. 次のコマンドを実行して、印刷サーバー上で lpd デーモンが動作していることを確認します。

      $ ps -ax | grep lpd
        126 ?  IW    0:00 /usr/lib/lpd
        200 p1 S     0:00 grep lpd
      $

      lpd デーモンが動作している場合は、上の例のような 1 行が表示されます。動作していなければ、プロセス情報は表示されません。

    2. lpd が印刷サーバー上で動作していない場合は、印刷サーバー上でスーパーユーザーになり、lpd を再起動します。

      # /usr/lib/lpd &
      
  4. 印刷サーバーの lpd デーモンが正しく構成されていることを確認します。

    1. 印刷サーバー上でスーパーユーザーになり、lpc コマンドを入力します。

      # /usr/etc/lpc
      lpc>
    2. LP 状態情報を取得します。

      lpc> status
      luna:
      queuing is enabled
      printing is enabled
      no entries
      no daemon present
      lpc>

      状態情報が表示されます。上の例で、デーモンは動作していないので再起動する必要があります。

    3. デーモンが存在しない場合は、デーモンを再起動します。

      lpc> restart luna
      

      デーモンが再起動されます。

    4. lpd デーモンが起動されていることを確認します。

      lpc> status
      
    5. lpc コマンドを終了します。

      lpc> quit
      

      シェルプロンプトが再表示されます。

  5. 印刷クライアントが印刷サーバーにアクセスできることを確認します。

    1. 4.1 印刷サーバー上に /etc/hosts.lpd ファイルがあるかどうかをチェックします。

      4.1 印刷サーバー上では、このファイルが存在する場合は、着信印刷要求を受け付けられるかどうかの判定に使用されます。このファイルが存在しない場合、すべての印刷クライアントシステムがアクセスできるため、次の手順 b と c を飛ばしてください。

    2. ファイルが存在する場合は、印刷クライアントがファイルにリストされるかどうかを調べます。

      ファイルにリストされていないクライアントシステムからの要求は、印刷サーバーに転送されません。

    3. クライアントがリストされていない場合は、印刷クライアントをファイルに追加します。


    注 -

    ここまでで特に問題点が見つからない場合は、SunOS 4.1 システムは正常に設定され、機能しているはずです。


  6. 印刷クライアントからリモート lpd 印刷デーモンへの接続が正しく行われていることを確認します。

    1. 印刷クライアント上でスーパーユーザーになり、lpsched デーモンが実行されていることを確認します。

      # ps -ef | grep lp
         root   154     1 80   Jan 07 ?        0:02 /usr/lib/lpsched

      上の例のように、lpsched デーモンは動作しているはずです。

    2. LP 印刷サービスを停止します。

      # lpshut
      

      LP 印刷サービスが停止します。

    3. LP 印刷サービスを再起動します。

      # /usr/lib/lp/lpsched
      

      LP 印刷サービスは再起動します。

  7. リモート印刷サーバーが SunOS 4.1 システムとして正しく識別されていることを確認します。

SunOS 4.1 クライアントから SunOS 5.x 印刷サーバーへの印刷をチェックするには

  1. まだチェックしていない場合は、印刷サーバー上で LP 印刷サービスの基本機能をチェックします。

    手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。印刷クライアントから要求が出されたときに何も印刷されない原因を調べる前に、プリンタがローカルで動作していることを確認してください。


    注 -

    次の手順で指定されたシステムでは、スーパーユーザーまたは lp としてログインする必要があります。


  2. 印刷クライアントにアクセスできることを確認します。

    1. SunOS 5.x 印刷サーバー上で、ping print-client と入力して Return キーを押します。

      print_server# ping print_clientprint_client is alive

      print_client not available」というメッセージが表示される場合は、ネットワークに問題があります。

  3. 印刷クライアント上で、プリンタが正しく設定されているかを確認します。

    # lpr -P luna /etc/fstab
    lpr: cannot access luna
    #

    このコマンドでは、印刷クライアントが動作しているかどうかが表示されます。上の例は、印刷クライアントが正常に動作していないことを示しています。

  4. 印刷クライアント上で lpd デーモンが動作していることを確認します。

    1. lpd デーモンが動作していることを確認します。

      # ps -ax | grep lpd
        118 ?  IW    0:02 /usr/lib/lpd
      #

      このコマンドでは、lpd デーモンが印刷クライアント上で動作しているかどうかが表示されます。上の例は、デーモンが動作していることを示しています。

    2. 印刷クライアント上で、lpd デーモンを起動します。

      # /usr/lib/lpd &
      
  5. 印刷クライアント上で、印刷サーバーを識別する printcap エントリが存在することを確認します。

    1. プリンタが認識されていることを確認します。

      # lpr -P mercury /etc/fstab
      lpr: mercury: unknown printer
      #

      上の例は、指定したプリンタのエントリが /etc/printcap ファイルに入っていないことを示しています。

    2. エントリがない場合は、/etc/printcap ファイルを編集して次の情報を追加します。

      printer-name|print-server:¥
      :lp=:rm=print-server:rp=printer-name:br#9600:rw:¥ 
      :lf=/var/spool/lpd/printer-name/log:¥
      :sd=/var/spool/lpd/printer-name:

      次の例は、印刷サーバー neptune に接続されたプリンタ luna のエントリを示しています。

      luna|neptune:¥
              :lp=:rm=neptune:rp=luna:br#9600:rw:¥
              :lf=/var/spool/lpd/luna/log:¥
              :sd=/var/spool/lpd/luna:
    3. プリンタのスプーリングディレクトリ (/var/spool/lpd/printer-name) を作成します。

  6. 再試行を強制し、印刷クライアント lpd が待機状態になっていないことを確認します。

    印刷サーバーが動作し応答している場合は、印刷クライアント lpd は再試行する前に待ち状態になっている可能性があります。

    1. 印刷クライアント上でスーパーユーザーとなり、lpc コマンドを起動します。

      lpc> プロンプトが表示されます。

    2. プリンタを再起動します。

    3. lpc コマンドを終了します。

      シェルプロンプトが再表示されます。

      # lpc
      lpc> restart luna
      luna:
             no daemon to abort
      luna:
            daemon started
      # quit
      $
  7. 印刷サーバーへの接続をチェックします。

    1. 印刷クライアント上でスーパーユーザーになり、プリンタのログファイルを調べます。

      # more /var/spool/lpd/luna/log
      

      多くの場合、何も表示されません。

    2. プリンタ状態ログもチェックします。

      # more /var/spool/lpd/luna/status
      waiting for luna to come up
      #
    3. 接続が正常な場合は、印刷サーバー上で印刷サーバーが正しく設定されているかを確認します。

      # lpstat -t
      scheduler is running
      system default destination: luna
      device for luna: /dev/term/a
      luna accepting requests since May 20 17:45 1997
      printer luna now printing luna-314. enabled since 
      May 20 17:45 1997. available.
      luna-129            root               488   May 20 17:47
      #

      上の例は、印刷サーバーが起動され、動作していることを示しています。

      印刷サーバーが動作していない場合は、先に進む前に 手順 1 に戻ってください。

出力が正しくない場合の問題を解決する方法

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

  2. プリンタタイプが正しいことを確認します。

    プリンタタイプが正しくないと、正しく出力されないことがあります。たとえば、プリンタタイプ PS を指定してページを逆順に印刷する場合は、プリンタタイプ PSR を試してください (この 2 つのタイプ名は大文字で指定しなければなりません)。また、プリンタタイプが正しくないと、テキストの欠落、読みづらいテキスト、または間違ったフォントのテキストが出力されることがあります。プリンタタイプを判別するには、terminfo データベース内のエントリを調べます。terminfo データベースの構造については、「プリンタタイプ」を参照してください。

    1. 印刷サーバー上で、プリンタの特性を表示します。

      $ lpstat -p luna -l
      printer luna is idle. enabled since Tue Apr 29 11:55:52 MDT 1997. 
      available.
      	Form mounted: 
      	Content types: any
      	Printer types: NeWSprinter20
      	Description: 
      	Connection: direct
      	Interface: /etc/lp/interfaces/alamosa
      	After fault: continue
      	Users allowed:
      		(all)
      	Forms allowed:
      		(none)
      	Banner not required
      	Character sets:
      		
      	Default pitch:
      	Default page size: 80 wide 66 long
      	Default port settings:  
      $
    2. プリンタのマニュアルを参照して、プリンタのモデルを調べます。

    3. プリンタタイプが正しくない場合は、Admintool の「プリンタの変更 (Modify Printer)」オプションを使用して変更するか、次の lpadmin コマンドを使用します。

      # lpstat -p printer-name -T printer-type
      

      印刷クライアント上では、プリンタタイプを unknown にしてください。印刷サーバー上では、プリンタタイプは使用するプリンタのモデルをサポートするように定義された terminfo エントリと一致しなければなりません。使用するプリンタのタイプに関する terminfo エントリがない場合は、「サポートされていないプリンタの terminfo エントリを追加する方法」を参照してください。

  3. バナーページは印刷されるが文書の本文が印刷されない場合は、ファイル内容形式を確認します。

    プリンタに指定したファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ファイル内容形式が正しくなければ、必要なときにフィルタリングがバイパスされることがあります。

    1. 前の手順の lpstat コマンドで表示されたファイル内容形式に関する情報をメモします。

      印刷クライアント上では、1 つ以上の明示的な内容形式を指定する理由がない限り、ファイル内容形式を any にしてください。クライアント上で内容を指定すると、印刷サーバー上ではなく印刷クライアント上でフィルタリングが実行されます。また、クライアント上の内容形式は、印刷サーバー上で指定した内容形式と一致しなければならず、印刷サーバー上の内容形式はプリンタの機能を反映していなければなりません。

    2. プリンタのマニュアルを参照し、プリンタで直接印刷できるファイルのタイプを判別します。

      これらのファイル形式を参照するために使用する名前は、プリンタメーカーが使用している名前と一致しなくてもかまいません。ただし、使用する名前は LP 印刷サービスに認識されるフィルタで使用する名前と一致しなければなりません。

    3. ファイル内容形式が正しくない場合は、Admintool の「プリンタの変更 (Modify Printer)」オプションで変更するか、次の lpadmin コマンドを使用します。

      # lpadmin -p printer-name -I file-content-type(s)
      

      必要に応じて、このコマンドを印刷クライアント上、印刷サーバー上、またはその両方で実行します。印刷クライアント上で -I any を試し、印刷サーバー上で -I "" を試してください。-I "" は、NULL のファイル内容形式リストを指定します。これは、プリンタはそのプリンタタイプと正確に一致するファイルしか直接印刷できないので、すべてのファイルをフィルタにかけることを意味します。

      ファイルが印刷されないときは、まずこの組み合わせを選択してみるとよいでしょう。それで成功したら、印刷サーバー上で明示的な内容形式を指定し、不要なフィルタリングを減らすことができます。ローカルの PostScript プリンタでは、プリンタでサポートされている場合は、postscript または postscript,simple を使用してください。PSPSR はファイル内容形式ではなく、プリンタタイプなので注意してください。

      -I を省略すると、ファイル内容のリストはデフォルトの simple になります。-I オプションを使用し、simple 以外にもファイル内容形式を指定したい場合は、リストに simple を含めなければなりません。

      複数のファイル内容形式を指定するときは、名前をカンマで区切ります。また、名前をスペースで区切り、リストを引用符で囲むこともできます。ファイル内容形式として any を指定すると、フィルタリングは行われないので、プリンタで直接印刷できるファイルタイプのみを送信する必要があります。

  4. フォントのダウンロードに必要なフィルタリングを、印刷要求がバイパスしていないかどうかをチェックします。

    ユーザーがコマンド lp -T PS を使用して印刷要求を PostScript プリンタに依頼すると、フィルタリングは実行されません。フィルタリングを強制するコマンド lp -T postscript を使用して要求を依頼しようとすると、文書に必要な非常駐フォントがダウンロードされることがあります。

  5. プリンタポートの stty 設定値が正しいことを確認します。

    1. プリンタのマニュアルを参照して、プリンタポートに合った stty 設定値を判別します。


      注 -

      プリンタがパラレルポートで接続されている場合、ボーレートの設定値は無関係です。


    2. 現在の設定値を調べるには、stty コマンドを使用します。

      # stty -a < /dev/term/a
      speed 9600 baud;
      rows = 0; columns = 0; ypixels = 0; xpixels = 0;
      eucw 1:0:0:0, scrw 1:0:0:0
      intr = ^c; quit = ^|; erase = ^?; kill = ^u;
      eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>;
      start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
      rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
      parenb -parodd cs7 -cstopb -hupcl cread -clocal -loblk -parext
      -ignbrk brkint -ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
      ixon -ixany -ixoff imaxbel
      isig icanon -xcase echo echoe echok -echonl -noflsh
      -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
      opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3
      #

      このコマンドでは、プリンタポートの現在の stty 設定値が表示されます。

      LP 印刷サービスの標準プリンタインタフェースプログラムで使用されるデフォルトの stty オプションを表 72-2 に示しています。

      表 72-2 標準インタフェースプログラムで使用されるデフォルトの 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

      用紙送り後の遅延なし 

    3. stty 設定値を変更します。

      # lpadmin -p printer-name -o "stty= options" 
      

      表 72-3 を使用して、印刷出力に影響する様々な問題を解決する stty オプションを選択します。

      表 72-3 印刷出力の問題を解決する stty オプション

      stty

      結果 

      間違った設定から起こり得る問題 

      110, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400

      ボーレートを指定した値に設定する (ボーレートを 1 つだけ入力する) 

      ランダム文字と特殊文字が印刷され、間隔がバラバラになることがある 

      oddp

      evenp

      -parity

      奇数パリティを設定する 

      偶数パリティを設定する 

      パリティを設定しない 

      文字が欠落または間違った文字がランダムに表示される 

      -tabs

      タブを設定しない 

      テキストが右マージンにくっついてしまう 

      tabs

      8 スペースごとにタブを設定する 

      テキストに左マージンがなく、つながってしまうか、くっついてしまう 

      -onlcr

      行頭でキャリッジリターンを設定しない 

      間違ったダブルスペース 

      onlcr

      行頭でキャリッジリターンを設定する 

      ジグザグに印刷される 

      オプションをスペースで区切り、オプションリストを単一引用符で囲むと、複数のオプションの設定を変更できます。たとえば、奇数パリティを使用可能にし、7 ビットの文字サイズを設定する必要のあるプリンタを仮定します。そのためには、次の例のようなコマンドを入力します。

      # lpadmin -p neptune -o "stty='parenb parodd cs7'"
      

      stty オプション parenb でパリティチェック/生成を使用可能にし、parodd で奇数パリティの生成を設定し、cs7 で文字サイズを 7 ビットに生成します。

  6. 文書が正しく印刷されることを確認します。

    # lp -d printer-name filename
    

LP 印刷サービスのハングを解除する方法

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

  2. LP 印刷サービスを停止します。

    # lpshut
    

    このコマンドがハングする場合は、Control-c キーを押して次の手順に進みます。このコマンドが正常に実行された場合は、手順 4 に進みます。

  3. LP のプロセス ID を確認します。

    # ps -el | grep lp
       134 term/a   0:01 lpsched
    #

    次の手順の pid には、最初のカラムのプロセス ID 番号 (PID) を使用します。

  4. kill -15 コマンドを使用して、LP プロセスを停止します。

    # kill -15 134
    

    これで LP 印刷サービスプロセスが停止します。プロセスが停止しない場合は、最後の手段として手順 5 に進みます。

  5. 最後の手段として、プロセスを強制終了します。

    # kill -9 134
    

    すべての lp プロセスが終了します。

  6. 次のコマンドでは、LP 印刷サービスを再起動できるように、SCHEDLOCK ファイルが削除されます。

    # rm /usr/spool/lp/SCHEDLOCK
    
  7. LP 印刷サービスを再起動します。

    # /usr/lib/lp/lpsched
    

    LP 印刷サービスが再起動されます。スケジューラが再起動されない場合は、「印刷スケジューラを再起動する方法」を参照してください。

アイドル状態になった (ハングした) プリンタの問題を解決する方法

この作業には、プリンタがアイドル状態であってはならないのにアイドル状態になるときに使用する多数の手順が含まれています。通常は各手順を順番に試しますが、順番どおりでなくてもかまいません。

プリンタの準備ができているかどうかをチェックするには

  1. プリンタ状態情報を表示します。

    # lpstat -p printer-name 
    

    表示される情報は、プリンタがアイドル状態かアクティブ状態か、使用可能か使用不可か、または印刷要求を利用できるか受け付けていないかを示します。すべて正常と思われる場合は、この節の他の手順に進んでください。lpstat コマンドを実行できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。

  2. プリンタが利用できない (要求を受け付けていない) 場合は、プリンタが要求を受け付けるようにします

    # accept printer-name 
    

    プリンタは、その印刷待ち行列に要求を受け付け始めます。

  3. プリンタが使用不可になっている場合は、再び使用可能にします。

    # enable printer-name 
    

    このコマンドでは、待ち行列にある要求を処理するように、プリンタを再び使用可能にします。

印刷のフィルタリングをチェックするには

lpstat -o コマンドを使用して、印刷のフィルタリングをチェックします。

$ lpstat -o luna
luna-10           fred         1261   Mar 12 17:34 being filtered
luna-11           iggy         1261   Mar 12 17:36 on terra
luna-12           jack         1261   Mar 12 17:39 on terra
$

待機している最初の要求がフィルタリングされているかどうかを調べます。上の例のような出力になる場合は、ファイルがフィルタリングされています。プリンタはハングせず、要求の処理に少し時間がかかっているだけです。

プリンタ障害の後に印刷を再開するには

  1. プリンタ障害に関するメッセージを探し、ある場合は、その障害を解決してください。

    プリンタ障害の警告がどのように指定されているかに応じて、メッセージを電子メールで root に送らせるか、root がログインした端末に書き出すことができます。

  2. プリンタを再び使用可能にします。

    # enable printer-name 
    

    プリンタ障害によって要求がブロックされた場合は、このコマンドで強制的に再試行します。このコマンドが動作しない場合は、この節の他の手順を続行します。

ローカル待ち行列で停止している印刷要求をリモートプリンタに送信するには

  1. 印刷クライアント上で、印刷サーバーへの印刷要求を、それ以上待ち行列に入れないようにします。

    # reject printer-name 
    
  2. 印刷クライアント上で、印刷サーバーに ping 要求 (存在をチェックする要求) を送信します。

    print_client# ping print_server
    print_server is alive

    print_server not available」というメッセージが表示される場合は、ネットワークに問題があります。

  3. 問題を解決したら、新しい印刷要求を待ち行列に入れられるようにします。

    # accept printer-name 
    
  4. 必要であれば、再びプリンタを使用可能にします。

    # enable printer-name 
    

印刷サーバーの待ち行列で停止する印刷クライアントからの印刷要求を使用可能にするには

  1. 印刷サーバー上で、印刷クライアントから印刷サーバーへの印刷要求を、それ以上待ち行列に入れないようにします。

    # reject printer-name 
    
  2. lpsched ログファイルを表示します。

    # more /var/lp/logs/lpsched
    

    表示される情報を参考にして、印刷クライアントから印刷サーバーへの印刷要求が印刷されない原因を正確に把握できます。

  3. 問題を解決したら、新しい印刷要求を待ち行列に入れられるようにします。

    # accept printer-name
    
  4. 必要であれば、印刷サーバー上で再びプリンタを使用可能にします。

    # enable printer-name
    

矛盾したプリンタ状態メッセージを解決する方法

  1. 印刷サーバー上でプリンタが使用可能になっており、要求を受け付けているかどうかを確認します。

    # lpstat -p printer-name
    

    印刷クライアントが要求を受け付けているのに、印刷サーバーが要求を拒否しているときは、矛盾した状態メッセージが表示されます。

  2. 印刷サーバー上で、印刷クライアント上のプリンタの定義が、印刷サーバー上のプリンタの定義と一致するかどうかを確認します。

    # lpstat -p -l printer-name
    

    印刷フィルタ、文字セット、印字ホイール、フォームなど、印刷ジョブコンポーネントの定義を調べて、印刷クライアントとサーバー上で一致し、ローカルユーザーが印刷サーバーシステムのプリンタにアクセスできることを確認します。