ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (印刷) Oracle Solaris 10 8/11 Information Library (日本語) |
1. Oracle Solaris オペレーティングシステムでの印刷の概要
4. Oracle Solaris 印刷マネージャーを使用したプリンタの設定および管理 (作業)
8. LP 印刷スケジューラの管理および印刷要求の管理 (作業)
10. 文字セット、フィルタ、フォーム、およびフォントの管理 (作業)
11. PPD ファイル管理ユーティリティーを使用したプリンタの管理 (作業)
12. Oracle Solaris オペレーティングシステムでの印刷 (参照情報)
13. Oracle Solaris OS での印刷に関する問題のトラブルシューティング (作業)
この節では、次の手順について説明します。
出力されない問題を解決する方法
出力が正しくない問題を解決する方法
lp コマンドのハングを解除する方法
アイドル状態になった (ハングした) プリンタの問題を解決する方法
矛盾した状態メッセージを解決する方法
この作業には、次の問題解決の手順が含まれています。印刷要求をプリンタに出したのに何も印刷されない場合は、これらの手順を試してください。
ハードウェアをチェックします (「プリンタハードウェアをチェックする方法」)。
ネットワークをチェックします (「プリンタのネットワーク接続をチェックする方法」)。
LP 印刷サービスの基本機能をチェックします (「LP 印刷サービスの基本機能をチェックする方法」)。
印刷クライアントから印刷サーバーへの印刷をチェックします (「印刷クライアントから印刷サーバーへの印刷をチェックする方法」)。
印刷クライアント/印刷サーバーの節に進む前に、上記のうち最初の 3 つの手順をリストの順に試してください。ただし、バナーページは印刷されてほかに何も印刷されない場合は、「出力が正しくない場合の問題を解決する方法」の説明に進んでください。
製造業者のマニュアルを参照してください。プリンタがシリアルポートに接続されている場合は、そのケーブルでハードウェアフロー制御がサポートされることを確認してください。ヌルモデムアダプタでは、この機能がサポートされます。次の表は、ヌルモデムケーブル用のピン構成を示しています。
|
正しい設定については、プリンタのマニュアルを参照してください。
プリンタにセルフテスト機能が付いている場合は、その機能を使用します。プリンタのセルフテストの詳細は、プリンタのマニュアルを参照してください。
コンピュータとプリンタのボーレートの設定値が一致しなければ、何も印刷されないことがあり、さらに正しく出力されない場合もあります。詳しくは、「出力が正しくない場合の問題を解決する方法」を参照してください。
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 を実行していない場合、各印刷クライアントの /etc/hosts ファイルに印刷サーバーの IP アドレスを入力し、印刷サーバーの /etc/hosts ファイルにすべての印刷クライアントの IP アドレスを入力したか確認します。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
# echo "lpr.debug /var/tmp/lpr.debug" >>/etc/syslog.conf
注 - lpr.debug と /var/tmp/lpr.debug の間の空白は、タブでなければなりません。
# touch /var/tmp/lpr.debug
# svcadm restart system.log
この手順では、基本 LP 印刷サービス機能をチェックする例として、プリンタ luna を使用しています。
lpstat コマンドを使用します。
% lpstat -r scheduler is running
LP スケジューラが動作しているかどうかを示すメッセージが表示されます。
svcs コマンドを使用します。
% svcs application/print/server
スケジューラが動作している場合は、次の出力が表示されます。
STATE STIME FMRI online Oct_24 svc:/application/print/server:default
スケジューラが動作していない場合は、次の出力が表示されます。
STATE STIME FMRI disabled 14:27:48 svc:/application/print/server:default
lpsched コマンドを使用します。
# /usr/lib/lpsched Print services started.
印刷サービスが起動されたことを示すメッセージが表示されます。
svcadm コマンドを使用します。
# svcadm enable application/print/server
svcadm コマンドを使用する場合は、印刷サービスが起動されたかどうかを示すメッセージは表示されません。印刷サービスがオンラインになっているかどうかを確認するには、svcs application/print/server コマンドを再び実行します。
スケジューラを起動できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。
# lpstat -a mars accepting requests since Jan 12 14:23 2004 luna not accepting requests since Jan 12 14:23 2004 unknown reason
このコマンドは、LP システムがシステム用に構成された各プリンタの要求を受け付けているか確認します。
# accept luna
これで、指定したプリンタは要求を受け付けます。
# lpstat -p luna printer luna disabled since Jan 12 14:25 2004. available. unknown reason
このコマンドは、プリンタの状態に関する情報を表示します。プリンタ名を省略すると、システム用に設定されたすべてのプリンタに関する情報を表示できます。次の例は、使用不可になっているプリンタを示しています。
# enable luna printer "luna" now enabled.
指定したプリンタが、印刷要求の処理に使用可能になります。
# lpstat -t scheduler is running system default destination: luna device for luna: /dev/term/a
「device for printer-name」というメッセージは、ポートアドレスを示します。LP 印刷サービスの接続先のポートにケーブルが接続されているか確認します。ポートが正しければ、手順 5 に進みます。
# chown lp device-filename
このコマンドは、特殊なユーザー lp をデバイスファイルの所有者として割り当てます。このコマンドで、device-filename はデバイスファイル名です。
# chmod 600 device-filename
このコマンドにより、スーパーユーザー、lp、または同等の役割のみがプリンタポートデバイスファイルにアクセスできるようになります。
# lpstat -p luna -l printer luna is idle. enabled since Jan 12 14:24 2004. available Content types: postscript Printer types: PS
上の例は、正しく設定された PostScript プリンタと、そのプリンタを印刷要求の処理に利用できることを示しています。プリンタタイプとファイル内容形式が正しい場合は、手順 6 に進みます。
# lpadmin -p printer-name -T printer-type -I file-content-type
# lpadmin -p printer-name -F continue
このコマンドは LP 印刷サービスに対して、障害のために待機していない場合は続行するように指示します。
# enable printer-name
# lpadmin -p printer-name -A 'write root'
このコマンドは LP 印刷サービスに対して、プリンタが障害を起こした場合に、root に書き込むというデフォルトポリシーを設定し、root がログインした端末にプリンタ障害メッセージを送るように指示します。これにより、問題を修正するときに障害通知をすぐに受け取れます。
注 - ログイン端末としてプリンタを設定する作業では誤りをおかしやすいので、当てはまらないと思われる場合にも、必ず設定値を確認してください。
# 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## 情報が付いているのでわかります。ポートが正しく設定されている場合は、この手順の最後を飛ばしてください。
# cancel request-id
このコマンドで、request-id は取り消したい印刷要求の要求 ID 番号です。
# lpadmin -p printer-name -h
基本的な LP 印刷サービス機能に印刷時の問題の原因が見つからない場合は、次の中から該当するクライアント/サーバーの手順に進んでください。
基本機能をチェックする手順については、「LP 印刷サービスの基本機能をチェックする方法」を参照してください。印刷クライアントから要求が出されたときに何も印刷されない原因を調べる前に、プリンタがローカルで動作していることを確認してください。
印刷クライアントから印刷を要求する前に、そのプリンタを有効にして、その要求を受け付けるようにする必要があります。
注 - 以降のほとんどの手順において、root または lp としてログインしている必要があります。
# lpstat -t luna scheduler is running system default destination: luna device for luna: /dev/term/a luna accepting requests since Jan 12 14:26 2004 printer luna now printing luna-314. enabled since Jan 12 14:26 2004. available. luna-129 root 488 Jan 12 14:32 #
上記の例は、印刷サーバーが動作していることを示します。
プリンタタイプが正しくないと、正しく出力されないことがあります。たとえば、プリンタタイプ PS を指定してもページが意図した順序の逆に印刷される場合は、プリンタタイプ PSR を試してください(この 2 つのタイプ名は大文字で指定しなければなりません)。また、プリンタタイプが正しくないと、テキストの欠落、読みづらいテキスト、または間違ったフォントのテキストが出力されることがあります。プリンタタイプを判別するには、terminfo データベース内のエントリを調べます。terminfo データベースの構造については、「プリンタタイプ」を参照してください。
$ lpstat -p luna -l printer luna is idle. enabled since Thu Jul 12 15:02:32 ... Form mounted: Content types: postscript Printer types: PS Description: Connection: direct Interface: /usr/lib/lp/model/standard 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: $
# lpstat -p printer-name -T printer-type
印刷クライアント上では、プリンタタイプを unknown にしてください。印刷サーバー上では、プリンタタイプは使用するプリンタのモデルをサポートするように定義された terminfo エントリと一致しなければなりません。使用するプリンタのタイプ用の terminfo エントリがない場合は、「サポートされていないプリンタの terminfo エントリを追加する方法」を参照してください。
プリンタに指定したファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ファイル内容形式が正しくなければ、必要なときにフィルタリングがバイパスされることがあります。
印刷クライアント上では、1 つ以上の明示的な内容形式を指定する理由がない限り、ファイル内容形式を any にしてください。クライアント上で内容を指定すると、印刷サーバー上ではなく印刷クライアント上でフィルタリングが実行されます。また、クライアント上の内容形式は、印刷サーバー上で指定した内容形式と一致しなければならず、印刷サーバー上の内容形式はプリンタの機能を反映していなければなりません。
これらのファイル形式を参照するために使用する名前は、プリンタメーカーが使用している名前と一致しなくてもかまいません。ただし、使用する名前は LP 印刷サービスに認識されるフィルタで使用する名前と一致しなければなりません。
# lpadmin -p printer-name -I file-content-type(s)
必要に応じて、このコマンドを印刷クライアント上、印刷サーバー上、またはその両方で実行します。印刷クライアント上で -I any を試し、印刷サーバー上で -I "" を試してください。-I "" は、NULL のファイル内容形式リストを指定します。これは、プリンタはそのプリンタタイプと正確に一致するファイルしか直接印刷できないので、すべてのファイルをフィルタにかけることを意味します。
ファイルが印刷されないときは、まずこの組み合わせを選択してみるとよいでしょう。それで成功したら、印刷サーバー上で明示的な内容形式を指定し、不要なフィルタリングを減らすことができます。ローカルの PostScript プリンタでは、プリンタでサポートされている場合は、postscript または postscript,simple を使用することをお勧めします。PS と PSR はファイル内容形式ではなく、プリンタタイプなので注意してください。
-I を省略すると、ファイル内容のリストはデフォルトの simple になります。-I オプションを使用し、simple 以外にもファイル内容形式を指定する場合は、リストに simple を含める必要があります。
複数のファイル内容形式を指定するときは、名前をコンマで区切ります。また、名前をスペースで区切り、リストを引用符で囲むこともできます。ファイル内容形式として any を指定すると、フィルタリングは行われないので、プリンタで直接印刷できるファイルタイプのみを送信する必要があります。
ユーザーが lp -T PS コマンドを使用して印刷要求を PostScript プリンタに送ると、フィルタリングは実行されません。フィルタリングを強制するために lp -T postscript を使用して要求を送ってみます。この際、文書に必要な非常駐フォントがダウンロードされることがあります。
注 - プリンタがパラレルポートまたは USB ポートで接続されている場合、ボーレートの設定値は無関係です。
# 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 オプションを次の表に示します。
|
# lpadmin -p printer-name -o "stty= options"
次の表を使用して、印刷出力に影響するさまざまな問題を解決する stty オプションを選択します。
|
オプションをスペースで区切り、オプションリストを単一引用符で囲むと、複数のオプションの設定を変更できます。たとえば、奇数パリティーを使用可能にし、7 ビットの文字サイズを設定する必要のあるプリンタを仮定します。そのためには、次の例のようなコマンドを入力します。
# lpadmin -p neptune -o "stty='parenb parodd cs7'"
stty オプション parenb でパリティーチェックまたはパリティー生成を使用可能にし、parodd で奇数パリティーの生成を設定し、cs7 で文字サイズを 7 ビットに設定します。
# lp -d printer-name filename
# svcadm disable /application/print/server
# svcadm enable /application/print/server
LP 印刷サービスが再起動されます。スケジューラが再起動されない場合は、「印刷スケジューラを再起動する方法」を参照してください。
この作業には、プリンタがアイドル状態であってはならないのにアイドル状態になるときに使用する多数の手順が含まれています。通常は各手順を順番に試しますが、順番どおりでなくてもかまいません。
# lpstat -p printer-name
表示される情報は、プリンタがアイドル状態かアクティブ状態か、使用可能か使用不可か、または印刷要求を利用できるか受け付けていないかを示します。すべて正常と思われる場合は、この節の他の手順に進んでください。lpstat コマンドを実行できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。
# accept printer-name
プリンタは、その印刷待ち行列に要求を受け付け始めます。
# 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 $
待機している最初の要求がフィルタリングされているかどうかを調べます。上の例のような出力になる場合は、ファイルがフィルタリングされています。プリンタはハングせず、要求の処理に少し時間がかかっているだけです。
プリンタ障害の警告がどのように指定されているかに応じて、メッセージを電子メールで root に送らせるか、root がログインした端末に書き出すことができます。
# enable printer-name
プリンタ障害によって要求がブロックされた場合は、このコマンドで強制的に再試行します。このコマンドが動作しない場合は、この節の他の手順を続行します。
# reject printer-name
print-client# ping print-server print-server is alive
「print-server not available」というメッセージが表示される場合は、ネットワークに問題があります。
# accept printer-name
# enable printer-name
# reject printer-name
# more /var/lp/logs/lpsched
表示される情報を参考にして、印刷クライアントから印刷サーバーへの印刷要求が印刷されない原因を正確に把握できます。
# accept printer-name
# enable printer-name
# lpstat -p printer-name
印刷クライアントが要求を受け付けているのに、印刷サーバーが要求を拒否しているときは、矛盾した状態メッセージが表示されます。
# lpstat -p -l printer-name
印刷フィルタ、文字セット、印字ホイール、フォームなど、印刷ジョブコンポーネントの定義を調べて、印刷クライアントとサーバー上で一致し、ローカルユーザーが印刷サーバーシステムのプリンタにアクセスできることを確認します。