LPD(8)

名称
lpd - ラインプリンタの管理を行うデーモン

書式
lpd [-l] [port#]

解説
lpd はラインプリンタのためのデーモン (スプール領域を扱う) で、 通常はブート時に rc(8) ファイルから実行されます。 printcap(5) ファイルを 1 パスで解析し、存在するプリンタを探し、 クラッシュ後に残っていたファイルをプリントアウトします。その後、 システムコールの listen(2) と accept(2) を使って、キュー内のファイルのプリントアウトの要求や、スプールエリアに ファイルの転送、キューの表示、キューからのジョブの削除などの 要求を受けます。このとき、lpd は 子プロセスを fork して親プロセスが 次の要求待ちをできるようにします。

オプションとしては、以下のものがあります:

-l  このオプションをつけると、 lpd は有効なリクエストをネットワークから受けたときにログをとるようになります。 これは、デバック時に有効です。

port#
    別のプロセスとの待ち合わせを行うために使うインターネットポート番号は通常 getservbyname(3) を使って得ますが、引数 port# を使って変更することも可能です。

プリンタへのアクセス制限は 2 通りの方法で提供されます。 はじめに、すべてのリクエストは /etc/hosts.equiv ファイルもしくは /etc/hosts.lpd にリストアップされているマシンからのものでなければなりません。次に、 アクセスされるプリンタの printcap エントリに rs 特性が記されていれば、 lpr のリクエストはそのプリンタの接続されているマシンのアカウントを持つ ユーザのものしか受け付けません。

ラインプリンタキューが完全にディスクを使い尽くしてしまわないように、 各スプールディレクトリ内にある minfree ファイルには空きとして残しておくディスクのブロック数を書いておきます。

lpd は、ロックファイルへの排他的なアクセスを行うため、および、 複数のデーモンが同時にアクティブになるのを避けるために flock(2) を使います。しかし、もし不意にデーモンが死んだ場合でも、ロックファイルを 削除する必要はありません。

関連ファイル
/etc/printcap
    プリンタ記述ファイル
/var/spool/*
    スプールディレクトリ
/var/spool/*/minfree
    スプールのあるディスクに最低限残しておくべき空き領域の設定
/dev/lp*
    ラインプリンタデバイス
/var/run/printer
    ローカルなリクエストのためのソケット
/etc/hosts.equiv
    プリンタアクセスを許可するマシンの名前のリスト
/etc/hosts.lpd
    プリンタアクセスを許可するマシンの名前のリストであるが、 /etc/hosts.equiv と同じ管理下にあるわけではない

関連項目
lpc(8), pac(1), lpr(1), lpq(1), lprm(1), syslog(3), printcap(5) 4.2 BSD Line Printer Spooler Manual.

歴史
lpd デーモンは Version 6 AT&T UNIX から登場しました。