- 締切済み
CUPS のエラーログ「printer state is 5」の意味
■CUPS について詳しい方、教えて下さい。 (1)端末の環境 ・VineLinux4.0 ・CUPS Version 1.1.23-0vl7 ・RICHO のプリンタ1台につき、30台のクライアントが接続されている。 ・学校で使用している為、クライアントから一斉に印刷するケースがある。 (2)状況 ・普段は正常に印刷が可能だが、何らかのタイミングで CUPS の error.log に エラーが書き込まれ、それ以降は印刷不能となる。 ・印刷不能となる端末は 30台中、2台程度。 ・恐らく、30台から一斉に印刷が開始された際に、プリンターへ負荷が掛かり、 キューを受け付けられなくなった状態と思われる。 ・CUCPS を再起動すると、正常に印刷が可能となる。 ・原因追求の為、エラーログを debug2 レベルに変更し、error.log を取得。 ・エラーログを読み、ステータスなどのコードについて調べてみたが情報が 見当たらない。 (3)CUPS error.log (一部分のみ抽出) ■正常印刷時 D [12/Jul/2007:15:08:22 +0900] [Job 16] lpd_command 02 D [12/Jul/2007:15:08:22 +0900] [Job 16] lpd_command returning 0 D [12/Jul/2007:15:08:22 +0900] StopJob: printer state is 3 ■印刷不能時 D [17/Jul/2007:10:18:23 +0900] [Job 46] lpd_command 02 D [17/Jul/2007:10:18:23 +0900] [Job 46] lpd_command returning 1 D [17/Jul/2007:10:18:23 +0900] StopJob: printer state is 5 (4)不明な点 ・CUPS error.log の「StopJob: printer state is 5」の"5"はどのような 意味なのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- xjd
- ベストアンサー率63% (1021/1612)
こんばんは。 >「StopJob: printer state is 5」の"5"はどのような >意味なのでしょうか? CUPSのオンラインWEBマニュアルがVineLinuxにインストールされているので 読んでみました。 http://localhost:631/ Printer States The printer state values are used to represent the current printer state. * IPP_PRINTER_IDLE - Printer is idle * IPP_PRINTER_PROCESSING - Printer is processing * IPP_PRINTER_STOPPED - Printer is stopped これだけでは、どのStatesが何番か分からないので、cupsのソースを ダウンロードして、確認してみました。 cups-1.1.23-source.tar.gz cups/ipp.h より typedef enum /**** Printer States.... */ { IPP_PRINTER_IDLE = 3, IPP_PRINTER_PROCESSING, IPP_PRINTER_STOPPED } ipp_pstate_t; ということで、5番は、IPP_PRINTER_STOPPED (プリンタが止まった) ですね。 「StopJob: printer state is 5」 このデバッグ用メッセージは、scheduler/job.c の2149行で出力されています。 2142 if (current->status < 0 && 2143 !(current->dtype & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT)) && 2144 !(current->printer->type & CUPS_PRINTER_FAX)) 2145 SetPrinterState(current->printer, IPP_PRINTER_STOPPED, 1); 2146 else if (current->printer->state != IPP_PRINTER_STOPPED) 2147 SetPrinterState(current->printer, IPP_PRINTER_IDLE, 0); 2148 2149 LogMessage(L_DEBUG, "StopJob: printer state is %d", current->printer->state); 参考にして下さい。
お礼
xjd さん、ご回答ありがとうございます。 ソースまで読んで頂き、大変感謝しております。 どのように対処しようか考えておりましたが、 CUPS 1.3 系には「ErrorPolicy」という設定が追加され、 デフォルトでは「stop-printer」になっているようです。 これを「retry-job」に変更し、印刷されるようになるか 経過を見てみたいと思います。