lpr report.pdf で印刷したのに、プリンターから何も出てこない
【疑問】印刷したのに出てこない。CUPS と lpr・lpq・lprm、/etc/cups/ と確かめる順番【LPICレベル1】
前提のおさらい。印刷も裏で動くサービスがやってる。systemd のシステムなら cups.service で、状態は systemctl status cups
>>1
Linux の印刷はたいてい CUPS。lpr などで送ったジョブは cupsd のキューに入って、順番にプリンターへ送られる。どこで止まってるかを順に見る
>>3
まず何を見る?
>>4
1. cupsd が動いてるか(systemctl status cups)
2. キューにジョブが残ってるか(lpq)
3. プリンターが止まってないか、受け付けてるか(lpstat -p、lpstat -a)
4. ログ(/var/log/cups/error_log)
>>5
lpq の使い方は?
>>6lpq で既定のプリンターのキュー、lpq -P 名前 でそのプリンター、lpq -a で全部。ジョブ番号と持ち主とファイル名が並ぶ
>>7
残ってるジョブを消したい
>>8lprm ジョブ番号。番号を付けないと既定のプリンターの今のジョブ、lprm - で自分のジョブを全部(lprm の man)。System V 系の書き方なら cancel
>>9
lpr のほうのオプションは?
>>10
-P プリンター名、-# 部数、-o で用紙などのオプション。lpr -P office -# 2 report.pdf で office に2部
System V 系の lp も同じことができる(-d プリンター、-n 部数)
>>5
プリンターが止まってたら?
>>12
エラーが続くと、プリンター自体が disabled(止まってる)になることがある。cupsenable 名前 で動かす。止めるのは cupsdisable
キューがジョブを受け付けない(rejecting)なら cupsaccept 名前。受け付けを止めるのが cupsreject
>>13
disabled はジョブを受け付けるけど出さない、rejecting は受け付けない、で別の状態なんか
CUPS の設定ファイルはどこ?
>>15
/etc/cups/ の下
cupsd.conf:サーバーの設定(待ち受け、アクセスの許可)
printers.conf:登録したプリンター(cupsd が書くから、手で直すなら止めてから)
ppd/:プリンターごとの PPD(機能の説明のファイル)
>>16
Debian の cupsd.conf のひな形は Listen localhost:631 と Listen /run/cups/cups.sock で、自分のマシンからだけ受ける。WebInterface Yes で、ブラウザで http://localhost:631/ を開くと管理画面が出る
>>17
631番は IPP(インターネット印刷プロトコル)のポートで TCP。プリンターの登録はこの画面か lpadmin でやる
>>5
ログには何が出るん
>>19
error_log にエラー(LogLevel で詳しさを変える。Debian のひな形は warn)、access_log に要求、page_log に印刷したページの記録。詳しく調べるときは cupsctl --debug-logging
>>19
試したマシンには CUPS が入ってなかったから、パッケージを取ってきて /workspace に展開して、man とひな形のファイルで確かめた。入れてはない
>>5
動いてるか、lpq でキュー、lprm で消す、止まってたら cupsenable、受け付けなければ cupsaccept、ログは error_log。順番に見るわ
管理人のひとこと
- Linux の印刷は CUPS(cupsd)。lpr・lp で送ったジョブはキューに入る。管理画面と IPP は TCP 631(http://localhost:631/)。
- lpr(-P プリンター、-# 部数、-o オプション)、lpq(-P、-a 全部)、lprm(ジョブ番号、- で自分の全部)、System V 系は lp・lpstat・cancel。
- プリンターが止まっていれば cupsenable(止めるのは cupsdisable)、キューが受け付けなければ cupsaccept(cupsreject)。状態は lpstat -p・-a。
- 設定は /etc/cups/(cupsd.conf、printers.conf、ppd/)。ログは /var/log/cups/ の error_log・access_log・page_log。