lpd(8) ラインプリンタ スプーラー デーモン

書式

lpd [-l ]

説明

lpd は、ラインプリンタデーモン (スプール領域ハンドラー) であり、起動時に rc(8) ファイルから呼び出されるのが普通である。 これは、 printcap(5) ファイルをひととおり調べてプリンタ情報を入手し、クラッシュ後に残されていた ファイルがあればそれらをすべて印刷する。そして、システムコール listen(2) 及び accept(2) を利用して、キュー内にあるファイルの印刷要求受付、 スプール領域へのファイル転送、キューの表示、 ならびにキュー内のジョブの削除を行なう。 いずれの場合も、子プロセスをフォーク(fork)して要求を処理し、 親プロセスは引き続いて他の要求を受け入れれるようにしている。

オプション :

-l
-l フラグを立てると、 lpd はネットワークから受け取った有効な要求のログをとる。 これは、デバッグを行なうのに有用である。

アクセス制御には 2 つの方法がある。まず 1 つ目は、 /etc/hosts.equiv 若しくは /etc/hosts.lpd ファイルに列挙されているマシンからの要求のみを受け付けるというものである。 2 つ目の方法は、もし rs がアクセスされようとしているプリンタの printcap エントリに指定してあれば、 そのプリンタが接続されているマシンにアカウントを持ったユーザーに限り, lpr 要求が受理されるというものである。

ラインプリンタキューがディスクを全て使い果たすことのないよう、 各スプールディレクトリ内のファイル minfree には、空きとして残しておくディスクブロックの数が書き込まれる。 この minfree の編集には、いかなるエディタを使っても構わない。

デーモンは、排他的アクセスのためのロック(後述)をセットした後、 ファイルの処理を開始し、スプールディレクトリを調べ、 cf で始まるファイルをさがす。 各 cf ファイルでは、印刷されるべきファイルや(印刷以外で)実行される べき動作が指定されている。そのそれぞれの行は、一つのキー文字で始まっ ており、それはその行の残りの部分とともに何をするべきかを表している。

J
ジョブの名前。バーストページにおいてジョブ名として使われる文字列。
C
分類。バーストページにおいて分類行に使われる文字列。
L
リテラル。パスワードファイルから得られた識別情報。 これは、バナーページを印刷させる。
T
タイトル。 pr(1) のタイトルとして使われる文字列。
H
ホスト名。 lpr が呼び出されたマシンの名前。
P
人。 lpr を呼び出した人のログイン名。 これは、所有権を確認するために lprm によって利用される。
M
現在のプリントジョブが完了した時点で、指定されたユーザーに対してメールを送る。
f
整形されたファイル。印刷するファイル(これは,既に整形してある)の名前。
l
``f'' に似ているが、これは制御文字を通し、改ページをさせない。
p
pr(1) をフィルタとして使うことで印刷されるべきファイルの名前。
t
troff ファイル。その内容は troff(1) (cat 写植コマンド)の出力である。
n
ditroff ファイル。その内容はデバイス非依存 troff 出力である。
r
DVI ファイル。その内容は Tex 出力である。 DVI フォーマットは、スタンフォード大学で開発されたものである。
g
グラフファイル。その内容は plot(3) によって作成されたデータである。
c
cifplot ファイル。その内容は cifplot によって作成されたデータである。
v
ラスタイメージ(raster image)ファイル。
r
FORTRAN キャリッジ制御文字(FORTRAN carriage control characters)を含んだテキストデータからなるファイル。
1
troff のフォント R 。 デフォルトの代わりに使用するフォントファイルの名前。
2
troff のフォント I 。 デフォルトの代わりに使用するフォントファイルの名前。
3
troff のフォント B 。 デフォルトの代わりに使用するフォントファイルの名前。
4
troff のフォント S 。 デフォルトの代わりに使用するフォントファイルの名前。
W
横幅。 pr(1) やテキストフィルタで使用されるページ幅(文字数で指定)を変更する。
I
インデント。出力に施すインデントの(アスキー文字での)文字数。
U
アンリンク(unlink)。印刷終了時に削除されるファイル名。
N
ファイル名。印刷されるファイル名。標準入力( lpr がパイプラインにおいて呼び出された場合)の場合は空白。

もしファイルをオープンできないときは、 LOG_LPR 機能を使い、 syslog(3) を通じてメッセージが記録される。 lpd は、そのファイルの印刷を見送るまでに最大 20 回まで再オープンを試みる。

lpd は、 flock(2) を使ってロックファイルへの排他的アクセスを提供し、 複数のデーモンが同時にアクティブになるのを防ぐ。 もし、不意にデーモンが殺されたり死んだりしても、ロックファイルを削除する 必要はない。 ロックファイルは、読むことの可能な ASCII 形式で保持され、2 つの行をその内容としている。 1 行目はデーモンのプロセス id であり、2 行目は現在の印刷ジョブの 制御ファイル名である。 2 行目は、 lpq(1) と lprm(1) に使われるため、 lpd の現在の状態を反映するよう更新される。

ファイル

/etc/printcap
プリンタ記述ファイル
/var/spool/*
スプールディレクトリ(の集まり)
/var/spool/*/minfree
最低限残しておくべき空き領域
/dev/lp*
ラインプリンタデバイス
/var/run/printer
ローカルでの要求に対するソケット(socket)
/etc/hosts.equiv
プリンタへのアクセスが許可されているマシンの名前のリスト
/etc/hosts.lpd
プリンタへのアクセスは許可されているが、同じ管理制御の下には置かれていない マシンの名前のリスト

履歴

デーモンは、Version 6 AT&T UNIX で登場した。