LPD(8)

명칭
lpd - 라인 프린터·스풀러·demon

서식
lpd [-cdlpsW46] [port#]

해설
lpd 유틸리티는, 라인 프린터를 위한 demon (spool area를 관리하는 프로그램)로, 통상은 부트시에 rc(8) 파일로부터 기동됩니다. 이 demon는, 접속되고 있는 프린터의 정보를 printcap(5) 파일을 대충 읽어들이는 것에 의해 취득해, 크래쉬 후에 남아 있었다 파일이 있으면 인쇄합니다. 그 후, 시스템 콜의 listen(2) (와)과 accept(2) (을)를 이용해 큐내의 파일의 인쇄·spool area에의 파일 전송· 큐의 표시·큐로부터의 작업의 삭제등의 요구를 받아들입니다. 무엇인가 요구가 있으면(자) lpd 는 child process를 fork 해 그 요구를 처리하므로, parent process는 계속해 다음의 요구 대기를 할 수 있게 되어 있습니다.

사용할 수 있는 옵션:

-c  디폴트에서는, 리모트 호스트가 로컬 호스트상의 lpd 에 인쇄를 시도했을 때에 에러가 발생하면(자), lpd (은)는 리모트 호스트에 대해서 에러 메세지만을 송신합니다. -c 플래그를 사용하면(자), lpd (은)는 이러한 접속 에러를 syslog(3) 그리고 기록합니다.

-d  인터넷으로 listen 하는 소켓으로 SO_DEBUG (을)를 온으로 합니다 ( setsockopt(2) 참조).

-l  -l 옵션을 붙이면(자), lpd (은)는 네트워크로부터 받은 정당한 요구에 대해 기록을 취하게 됩니다. 이것은 디버그를 실시할 때에 유용합니다.

-p  -p 플래그는 -s 플래그의 별명입니다. 이 플래그는 가치가 저하하고 있어 장래의 버젼의 lpd 그럼 삭제될지도 모릅니다. -s (시큐어) 플래그는, lpd 에, 인터넷으로 listen 하는 소켓을 오픈하지 않게 시킵니다. 이것은, 리모트 호스트로부터의 접속을 lpd 하지만 거부하는 것의 로컬 유저로부터의 인쇄 요구는 허가하는 것을 의미합니다.

-W  디폴트에서는, lpd demon는 리모트 호스트의 예약 포트 (1024 미만)로부터의 접속만을 받아들입니다. -W 플래그를 지정하면(자), lpd (은)는 모든 포트로부터의 접속을 받아들입니다. Windows 용의 특정의 lpr 실장으로부터의 인쇄 작업을 받아들이고 싶은 경우에 유용합니다.

-4  inet 마셔.

-6  inet6 마셔.

-46 inet 와 inet6 (디폴트).

port#
    다른 프로세스와 접속하는데 이용한다 인터넷 포트 번호는 통상 getservbyname(3) (을)를 사용해 취득합니다만, 인수 port# (을)를 사용해 변경하는 일도 가능합니다.

프린터에의 액세스 제한은 두 개의 수단을 이용해 행해집니다. 제일에, 모든 요구는 /etc/hosts.equiv 파일 혹은 /etc/hosts.lpd 파일에 열거함 라고 있는 머신으로부터의 것이 아니면 안됩니다. 2번째로, 액세스 되는 프린터에 관한 printcap(5) 엔트리에 rs 특성의 지정이 있으면(자), lpr (으)로부터의 요구는 그 프린터가 접속되고 있는 머신에 어카운트를 가진다 유저의 것 밖에 받아들일 수 없게 됩니다.

각 spool 디렉토리내에 minfree 그렇다고 하는 파일을 작성해, 빈 곳으로서 남겨 두는 디스크의 블록수를 써 두면, 라인 프린터 큐가 디스크를 쓰여져 버리지 않게 (으)로 할 수 있습니다. minfree 파일은 임의의 텍스트 문자 편집기를 사용해 편집할 수 있습니다.

이 demon는, 프린터에의 액세스를 배타적으로 실시하기 위한 락 (후술)을 실시한 위에 파일의 처리를 개시해, spool 디렉토리안에 cf 그리고 시작되는 이름의 파일이 있는지 어떤지를 조사합니다. cf 파일의 내용은 인쇄해야 할 파일의 이름 혹은 인쇄 이외로 실시해야 한다 어떠한 동작을 나타내고 있습니다. 파일중의 각 행은 키 캐릭터로부터 시작되어 있어 그 행의 나머지의 부분과 합해 어떠한 동작을 실시해야할 것인가를 나타내고 있습니다.

J   작업명 (job name). burst 페이지에 인쇄되는 작업명으로서 이용되는 캐릭터 라인.

C   분류 (classification). burst 페이지에 인쇄되는 분류행에 이용된다 캐릭터 라인.

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 형식인 것을 나타냅니다.

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 하지만 파이프라인 중(안)에서 실행되었을 경우)는 공백이 되어 있습니다.

Z   로케일입니다. pr(1) 하지만 사용하는 로케일 캐릭터 라인입니다.

어떠한 파일을 오픈할 수 없는 경우, syslog(3) (을)를 통해서 LOG_LPR 기능 분류로 메세지가 기록됩니다. lpd 유틸리티는, 최대 20 회까지 목적의 파일의 오픈을 시도합니다만, 그런데도 실패하면(자) 그 파일에 관련되는 인쇄 처리는 날립니다.

lpd 유틸리티는, 락 파일을 배타적으로 액세스 하는 목적 혹은 복수의 demon가 동시 에 액티브하게 되는 것을 회피하는 목적으로 flock(2) (을)를 사용합니다. demon가 kill 되거나 이상종료(ABEND) 했을 경우에서도 락 파일을 삭제할 필요는 없습니다. 락 파일은 보통으로 읽을 수가 있는 ASCII 형식에서 쓰여져 있어 2 행으로부터 됩니다. 1 행 째는 demon의 프로세스 ID로, 2 행 째는 현재 실행중인 작업의 제어 파일명입니다. 2 행 째는 lpq(1) 및 lprm(1) 하지만 사용할 수 있도록, 항상 lpd 의 현재 상태를 나타내도록(듯이) 갱신되고 있습니다.

관련 파일
/etc/printcap
    프린터 기술 파일
/var/spool/*
    spool 디렉토리군
/var/spool/*/minfree
    최저한 남겨 두는 빈area의 설정
/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 프로그램은 AT&T UNIX (으)로부터 등장했습니다.