LPD(8) — UNIX Programmer’s Manual
名称
lpd − ラインプリンタデーモン
形式
/usr/lib/lpd [ −l ] [ port # ]
解説
lpd は、ラインプリンタデーモン(スプール領域ハンドラ)で、通常ブート時に rc(8) ファイルから呼び出されます。これは、 printcap(5) ファイルを通して存在するプリンタを見い出し、 単一のパスを作成して、クラッシュ後に残っているファイルを印刷します。 次に、システムコール listen(2) と accept(2) を使って、キュー内のファイルの印刷要求を受け取ったり、 ファイルをスプーリング領域に転送したり、キューを表示したり、 またはキューからジョブを削除します。 いずれの場合でも、子プロセスを fork して要求をさばくので、 親プロセスは他の要求を監視し続けることができます。 他のプロセスと待ち合わせるために使われるインタネットポート番号は、 通常 getservbyname(3) で得られますが、 port# 引数で変更することが可能です。 −l フラグは、lpd にネットワークから受け取った有効な要求を記録させます。 これはデバッグの役に立ち得ます。
アクセスコントロールは二つの方法で提供されます。 第一に、すべての要求は /etc/hosts.equiv か、 /etc/hosts.lpd のファイルにリストされているマシンのどれか 1つから出されます。 第二に、アクセスされるプリンタのために“rs”の能力が、 printcap エントリで指定されていると、 lpr 要求は、プリンタを持つマシンにアカウントを持ったユーザにのみ認められます。
各スプールディレクトリ中のファイル minfree には、フリーとして残しておくディスクブロックの数が入っているので、 ラインプリンタキューが完全にディスクを埋め尽くすことはありません。 minfree ファイルは、好みのテキストエディタで編集することができます。
各スプールディレクトリ中のファイル lock は、複数のデーモンが同時に動作するのを防ぎ、 lpr(1)、 lpq(1)、 lprm(1) のためのデーモンプロセスに関する情報を保管するのに使われます。 デーモンは、ロックのセットに成功した後、ディレクトリ中にある、 cf で始まるファイルを走査します。各 cf ファイル中の行は、ファイルを印刷するように指定したり、 印刷しないアクションが実行されるように指定したりします。 それぞれの行は、 行の残りの部分で何をするかを指定するためのキーとなる文字で始まります。
Jジョブ名。 文字列は、バーストページ(印刷ジョブ切り分け用のページ)上の ジョブ名用に使われる。
C分類。文字列は、バーストページ上の分類行に使われる。
Lリテラル。行には、パスワードファイルからの識別情報が入っており、 バナー(字幕)ページが印刷されるようにする。
Tタイトル。文字列は、 pr(1) 用のタイトルとして使われる。
Hホスト名。 lpr が呼び出されたマシンの名称。
Pユーザ。 lpr を呼び出した人のログイン名。これは、 lprm によって所有権をチェックするのに使われる。
M現在の印刷ジョブが完了する時に、指定されたユーザにメールを送る。
fフォーマットされたファイル。 フォーマット済みで、印刷されることになっているファイルの名称。
l“f”に似ているが、コントロールキャラクタを無視し、改ページをしない。
ppr(1) をフィルタとして使い、印刷するファイルの名称。
ttroff ファイル。ファイルは、 troff(1) の出力 (フォトタイプセッタ(写植機)コマンド)を含む。
nditroff ファイル。ファイルは、デバイスに非依存の troff の出力を含む。
dDVIファイル。ファイルは、 Tex(1) の出力 (スタンフォードの DVI フォーマット)を含む。
gグラフファイル。ファイルは、 plot(3X) で作られたデータを含む。
ccifplot ファイル。ファイルは、 cifplot で作られたデータを含む。
vファイルは、ラスタイメージを含む。
rファイルは、FORTRAN キャリッジコントロールキャラクタの付いた テキストデータを含む。
1troff フォント R。デフォルトの代わりに使うフォントファイルの名称。
2troff フォント I。デフォルトの代わりに使うフォントファイルの名称。
3troff フォント B。デフォルトの代わりに使うフォントファイルの名称。
4troff フォント S。デフォルトの代わりに使うフォントファイルの名称。
W幅。pr(1)やテキストフィルタで使われるページの印刷幅(文字数で)を変更する。
Iインデント。出力のインデント(字下げ)文字数 (ascii 文字数で)。
Uアンリンク。印刷完了と同時に取り除くファイルの名称。
Nファイル名。印刷されているファイルの名称、標準入力の場合にはブランク (lpr がパイプライン中で呼び出される時)。
ファイルがオープンできない場合は、 LOG_LPR 設備を用い、 syslog(3) 経由でメッセージが記録されます。 lpd はそこにあることが予想されるファイルを再開しようと 20回まで試みますが、 そのあとは印刷されるはずだったそのファイルをスキップします。
lpd は、ロックファイルを排他的にアクセスできるように flock(2) を使用し、複数のデーモンが同時に動作するのを防ぎます。 デーモンが殺されたり、予期せずに死んだ場合、 ロックファイルを排除する必要はありません。 ロックファイルは、読み出し可能な ASCII 形式で保たれ、2 行を含みます。 1行目はデーモンのプロセスIDで、 2行目は印刷されている現在のジョブのコントロールファイル名です。 2行目は、プログラム lpq(1) と lprm(1) のために、 lpd の現在のステータスを反映させるよう更新されます。
関連ファイル
/etc/printcapプリンタ記述ファイル
/usr/spool/∗スプールディレクトリ
/usr/spool/∗/minfree最低限残しておくフリースペース
/dev/lp∗ラインプリンタデバイス
/dev/printerローカルリクエストに対するソケット
/etc/hosts.equivプリンタのアクセスを許すマシン名のリスト
/etc/hosts.lpdプリンタのアクセスを許すマシン名のリスト、
ただし同じ管理コントロール下にはない。
関連事項
lpc(8), pac(1), lpr(1), lpq(1), lprm(1), syslog(3), printcap(5)
4.3BSD Line Printer Spooler Manual (SMM:6)
NEWS-OSRelease 3.3