LPD(8) — NEWS-OS Programmer’s Manual
名称
lpd − ラインプリンタデーモン
形式
/usr/lib/lpd [ −l ] [ −local_mail ] [ port# ]
解説
lpd は、ラインプリンタデーモン(スプール領域ハンドラ)で、通常ブート時に rc.local (rc(8) 参照)ファイルから呼び出されます。これは、 printcap(5) ファイルを通して存在するプリンタを見い出し、 単一のパスを作成して、クラッシュ後に残っているファイルを印刷します。 次に、システムコール listen(2) と accept(2) を使って、キュー内のファイルの印刷要求を受け取ったり、 ファイルをスプーリング領域に転送したり、キューを表示したり、 またはキューからジョブを削除します。 いずれの場合でも、子プロセスを fork して要求をさばくので、 親プロセスは他の要求を監視し続けることができます。 他のプロセスと待ち合わせるために使われるインタネットポート番号は、 通常 getservbyname(3) で得られますが、 port# 引数で変更することが可能です。 −l フラグは、 lpd にネットワークから受け取った有効な要求を記録させます。 これはデバッグの役に立ち得ます。 −local_mail フラグが指定されると、 lpr(1) の −m フラグによる 終了通知のメールの メールアドレスの形式として user を用います。通常は user@host が用いられます。 ここで、user は lpr -m を起動したユーザ名を、 host は lpr -m が起動された ホスト名を表します。
アクセスコントロールは 2 つの方法で提供されます。 第一に、すべての要求は /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 現在の印刷ジョブが完了する時に、指定されたユーザにメールを送る。
O プリンタフィルタへ渡すオプション。
f フォーマットされたファイル。 フォーマット済みで、印刷されることになっているファイルの名称。
l f に似ているが、コントロールキャラクタを無視し、改ページをしない。
p pr(1) をフィルタとして使い、印刷するファイルの名称。
t troff ファイル。ファイルは、 troff(1) の出力 (フォトタイプセッタ(写植機)コマンド)を含む。
n ditroff ファイル。ファイルは、デバイスに依存しない troff の出力を含む。
d DVIファイル。ファイルは、 Tex(1) の出力 (スタンフォードの DVI フォーマット)を含む。
g グラフファイル。ファイルは、 plot(3X) で作られたデータを含む。
c cifplot ファイル。ファイルは、 cifplot で作られたデータを含む。
v ファイルは、ラスタイメージを含む。
r ファイルは、FORTRAN キャリッジコントロールキャラクタの付いた テキストデータを含む。
1 troff フォント R。 デフォルトの代わりに使うフォントファイルの名称。
2 troff フォント I。 デフォルトの代わりに使うフォントファイルの名称。
3 troff フォント B。 デフォルトの代わりに使うフォントファイルの名称。
4 troff フォント 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), a3sjlbp(1), syslog(3), printcap(5), lbp_filters(8)
4.3BSD Line Printer Spooler Manual (SMM:6)
NEWS-OSRelease 4.2.1R