1. lpd


・Linux (に限らず, BSD 系 UNIXでは一般に) において, データを印刷する命令:

→ lpr

例えば, hogehoge.ps を印刷したい場合, 以下のコマンドだけで OK:
    $ lpr hoge.ps

・でも,

「見えないところで何が起きているのか」

を知っていなければいざという時に対処出来ない.

・lpr による印刷要求を処理するデーモン (常に起動していて, 要求があるとその要求を処理するプログラム)

→ lpd (line printer deamon)

・lpr, lpd さん のお仕事

  1. ユーザが lpr コマンドを打つ.

    lpr コマンドによって, 印刷するファイルが プリント毎に設定されたスプールディレクトリへコピーされる.

  2. lpd さんはそのスプールディレクトリを監視している.

    スプールディレクトリの内容に変更あり → lpd さんは印刷命令(=ジョブ)があったと考える.

  3. lpd さんは, 古いジョブから順番にプリンタへ出力して行く.

    ジョブは命令された順番に キュー(先に要求されたものから順に処理する仕組み) へ追加され, 古いジョブから処理される.

・ lpd の設定: /etc/printcap で行う.
   デフォルトでは…
   lp|Generic dot-matrix printer entry:\
        :lp=/dev/lp0:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :sh:

# rlp|Remote printer entry:\
#         :lp=:\
#         :rm=remotehost:\
#         :rp=remoteprinter:\
#         :sd=/var/spool/lpd/remote:\
#         :mx#0:\
#         :sh:

項目の解説.


lp|Generic dot-matrix printer entry:\	←プリンタの登録名称
        :lp=/dev/lp1:\			←出力するプリンタデバイス	
        :sd=/var/spool/lpd/lp:\		←スプールディレクトリ
        :df=/etc/filter.ps:\		←Texデータ(DVI)のフィルタ指定
        :tf=/etc/filter.pcl:\		←troffデータのフィルタ指定
        :af=/var/log/lp-acct:\		←name of accounting file
        :lf=/var/log/lp-errs:\		←エラー・ログ・ファイルの指定
        :pl#66:\			←1 ページの行数(この場合66)
        :pw#80:\			←1 ページの桁数(この場合80)
        :pc#150:\			←price per foot or page in 
				          hundredths of cents
        :mx#0:\				←maximum file size (in BUFSIZ blocks)
					  0 の場合は上限無し
        :sh: 				←ヘッダの出力を抑制