EN JA
LPD(8)
LPD(8) FreeBSD System Manager's Manual LPD(8)

名称

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

書式

lpd [ -cdlpsW46][ port#]

解説

lpd ユーティリティは、ラインプリンタのためのデーモン (スプール領域を管理するプログラム) で、通常は、ブート時に rc(8) ファイルから起動されます。このデーモンは、接続されているプリンタの情報を printcap(5) ファイルを一通り読み込むことによって取得し、クラッシュ後に残っていたファイルがあれば印刷します。その後、システムコールの listen(2)accept(2) を用いてキュー内のファイルの印刷・スプール領域へのファイル転送・キューの表示・キューからのジョブの削除などの要求を受け付けます。何か要求があると lpd は、子プロセスを fork してその要求を処理するので、親プロセスは、続けて次の要求待ちをできるようになっています。

利用可能なオプションは、次の通りです:

-c
デフォルトでは、リモートホストがローカルホスト上の lpd へ印刷を試みた際にエラーが発生すると、 lpd は、リモートホストに対してエラーメッセージのみを送信します。 -c フラグを使用すると、 lpd は、これらの接続エラーを syslog(3) で記録します。
-d
インターネットで listen するソケットにて SO_DEBUG をオンにします ( setsockopt(2) 参照)。
-l
-l オプションをつけると、 lpd は、ネットワークから受けとった正当な要求について記録をとるようになります。これは、デバッグを行う際に有用です。
-p
-p フラグは、 -s フラグの別名です。このフラグは、価値が低下しており、将来のバージョンの lpd では、削除されるかもしれません。
-s
-s (セキュア) フラグは、 lpd に、インターネットで listen するソケットをオープンしないようにさせます。これは、リモートホストからの接続を lpd が拒否するもののローカルユーザからの印刷要求は、許可することを意味します。
-W
デフォルトでは、 lpd デーモンは、リモートホストの予約ポート (1024 未満) からの接続のみを受け付けます。 -W フラグを指定すると、 lpd は、すべてのポートからの接続を受け付けます。 Windows 用の特定の lpr 実装からの印刷ジョブを受け付けたい場合に有用です。
-4
inet のみ。
-6
inet6 のみ。
-46
inet と inet6 (デフォルト)。
port#
他のプロセスと接続するのに用いるインターネットポート番号は、通常 getservbyname(3) を使って取得しますが、引数 port# を使って変更することも可能です。

プリンタへのアクセス制限は、二つの手段を用いて行われます。第一に、全ての要求は、 /etc/hosts.equiv ファイルまたは /etc/hosts.lpd ファイルに列挙されているマシンからのものでなければなりません。第二に、アクセスされるプリンタに関する printcap(5) エントリに rs 特性の指定があると、 lpr からの要求は、そのプリンタが接続されているマシンにアカウントを持つユーザのものしか受け付けられなくなります。

各スプールディレクトリ中のファイル minfree は、ラインプリンタのキューがディスクを完全に満杯にしないように、空きのままとするためのキロバイトの数を含んでいます。 minfree ファイルは、任意のテキストエディタを使って編集できます。

このデーモンは、プリンタへのアクセスを排他的に行うためのロック (後述) を行ったうえでファイルの処理を開始し、スプールディレクトリの中に cf で始まる名前のファイルがあるかどうかを調べます。 cf ファイルの内容は、印刷すべきファイルの名前または印刷以外で行うべき何らかの動作を示しています。ファイル中の各行は、キー文字から始まっており、その行の残りの部分と合わせてどのような動作を行うべきかを表しています。

J
ジョブ名 (job name)。バーストページに印刷されるジョブ名として用いられる文字列。
C
分類 (classification)。バーストページに印刷される分類行に用いられる文字列。
L
リテラル (literal)。この行は、パスワードファイルから取り出した ID 情報を保持しており、この行があると見出しページが印刷されます。
T
表題 (title)。 pr(1) で表題として使用される文字列。
H
ホスト名 (host name)。 lpr(1) が実行されたマシンの名前。
P
人物 (person)。 lpr(1) を実行した人物のログイン名。これは、 lprm(1) がジョブの所有権を調べる際に使用されます。
M
現在の印刷ジョブが完了した時、指定のユーザにメールを送ります。
f
整形済みファイル (formatted file)。すでに整形済みである印刷ファイルの名前。
l
``f'' とほぼ同じですが、制御文字を通すことと改ページを行わない点が異なります。
p
フィルタとして pr(1) を使用して印刷すべきであるファイルの名前。
t
troff ファイル。ファイルの内容が troff(1) の出力結果であることを示します。
n
ditroff ファイル。ファイルの内容がデバイス独立 troff の出力結果であることを示します。
r
DVI ファイル。ファイルの内容が Tex l の出力する DVI 形式であることを示します。 Stanford の DVI 形式です。
g
graph ファイル。ファイルの内容が plot(3) の生成したデータであることを示します。
c
cifplot ファイル。ファイルの内容が cifplot の生成したデータであることを示します。
v
ファイルの内容がラスタイメージであることを示します。
r
ファイルの内容が FORTRAN のキャリッジ制御文字を伴ったテキストデータであることを示します。
1
troff R フォント。デフォルトのものに代えて使用するフォントファイルの名前。
2
troff I フォント。デフォルトのものに代えて使用するフォントファイルの名前。
3
troff B フォント。デフォルトのものに代えて使用するフォントファイルの名前。
4
troff S フォント。デフォルトのものに代えて使用するフォントファイルの名前。
W
幅 (width)。 pr(1) とテキストフィルタによって使用される (文字単位の) ページ幅を変更します。
I
字下げ (indent)。字下げの文字数が ASCII で書かれています。
U
リンク解除 (unlink)。印刷完了時に消去するファイルの名前。
N
ファイル名 (file name)。印刷中のファイルの名前。ファイルが標準入力の場合 ( lpr(1) がパイプラインの中で実行された場合) は、空白になっています。
Z
ロケールです。 pr(1) が使用するロケール文字列です。

何らかのファイルがオープンできない場合、 syslog(3) を通じて LOG_LPR 機能分類でメッセージが記録されます。 lpd ユーティリティは、最大 20 回まで目的のファイルのオープンを試みますが、それでも失敗するとそのファイルに関わる印刷処理は飛ばします。

lpd ユーティリティは、ロックファイルの排他的アクセスを提供し、複数のデーモンが同時にアクティブとなることを防ぐために flock(2) を使用します。デーモンが kill されたり異常終了した場合でもロックファイルを削除する必要はありません。ロックファイルは、普通に読むことができる ASCII 形式で書かれており、2 行からなります。 1 行目は、デーモンのプロセス ID で、2 行目は、現在実行中であるジョブの制御ファイル名です。 2 行目は、 lpq(1)lprm(1) が使用できるよう、常に lpd の現在の状態を示すように更新されています。

関連ファイル

/etc/printcap
プリンタ記述ファイル
/var/spool/*
スプールディレクトリ群
/var/spool/*/minfree
最低限残しておく空き領域の設定
/dev/lp*
ラインプリンタデバイス
/var/run/printer
ローカルな要求のためのソケット
/etc/hosts.equiv
プリンタへのアクセスを許可されているマシンの一覧
/etc/hosts.lpd
プリンタへのアクセスは、許可されているが、同一の管理権限下には置かれていないマシンの一覧

関連項目

lpq(1), lpr(1), lprm(1), setsockopt(2), syslog(3), hosts.lpd(5), printcap(5), chkprintcap(8), lpc(8), pac(8) 4.2 BSD Line Printer Spooler Manual.

歴史

lpd デーモンは、 Version 6 AT&T UNIX で登場しました。
June 6, 2001 FreeBSD