lpd —
ラインプリンタ
スプーラー
デーモン
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
- プリンタへのアクセスは許可されているが、同じ管理制御の下には置かれていない
マシンの名前のリスト
lpc(8),
pac(8),
lpr(1),
lpq(1),
lprm(1),
syslog(3),
printcap(5)
BSD 4.3
ラインプリンタマニュアル.
lpd
デーモンは、Version 6 AT&T UNIX
で登場した。