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

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

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

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

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

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

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

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

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

    表 42-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 Jul 12 14:23 1999
      luna not accepting requests since Jul 12 14:23 1999
      unknown reason

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

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


      # accept luna
      

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

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

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


      # lpstat -a
      mars accepting requests since Jul 12 14:23 1999
      luna not accepting requests since Jul 12 14:23 1999
      unknown reason

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

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


      # enable luna
      printer "luna" now enabled.

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

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

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


      # enable luna
      printer "luna" now enabled.

      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 Jul 12 14:24 1999. 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.8 または互換バージョンのクライアントから SunOS 5.8 または互換バージョンのプリンタサーバーへの印刷をチェックするには

  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 Jul 12 14:26 1999
    printer luna now printing luna-314. enabled since Jul 12 14:26 1999. 
    available.
    luna-129            root               488   Jul 12 14:32
    #

    上記の例は、プリンタサーバーが動作していることを示します。

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

SunOS 5.8 または互換バージョンの印刷クライアントから 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. SunOS 4.1 プリンタサーバー上に /etc/hosts.lpd ファイルがあるか確認します。

      SunOS 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
      
    3. LP 印刷サービスを再起動します。


      # /usr/lib/lp/lpsched
      
  7. リモートプリンタサーバーが SunOS 4.1 システムとして正しく識別されていることを確認します。

SunOS 4.1 クライアントから SunOS 5.8 または互換バージョンのプリンタサーバーへの印刷をチェックするには

  1. まだチェックしていなければ、プリンタサーバー上で LP 印刷サービスの基本機能をチェックします。

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


    注 -

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


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

    1. SunOS 5.8 プリンタサーバー上で、ping print-client と入力して Return キーを押します。


      print_server# ping print_client
      print_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 Jul 12 14:29 1999
      luna accepting requests since Jul 12 14:29 1999
      printer luna is idle. enabled since Jul 12 14:29 1999. available.
      #

      上記の例は、プリンタサーバーが起動され、動作していることを示します。

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