• 締切済み

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"はどのような  意味なのでしょうか?

みんなの回答

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

こんばんは。 >「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); 参考にして下さい。

PRE-PRE
質問者

お礼

 xjd さん、ご回答ありがとうございます。 ソースまで読んで頂き、大変感謝しております。  どのように対処しようか考えておりましたが、 CUPS 1.3 系には「ErrorPolicy」という設定が追加され、 デフォルトでは「stop-printer」になっているようです。 これを「retry-job」に変更し、印刷されるようになるか 経過を見てみたいと思います。

関連するQ&A