После того как принтер настроен, задания печати передаются демону lpd при помощи программы 1рг (Line Printer Remote). Программа lpr создает управляющий файл и передает его демону lpd вместе с файлом для печати.
Существует множество различных аргументов командной строки lpr, но обычно в команде просто указывается принтер и файл, подлежащий печати:
% lpr -Plj ch09
Данная команда передает файл ch09 принтеру lj. Принтер может быть локальным или удаленным - значения это не имеет, если принтер определен в файле printcap, и lpd, как следствие, знает его характеристики. Программный модуль клиента предоставляет команды, позволяющие пользователю проверить состояние задания печати. Эти команды, их синтаксис и назначение описаны в табл. 9.2.
В синтаксисе описанных команд принтер - это имя принтера, определенное в файле /etc/printcap, пользователь - имя учетной записи владельца задания печати, а задание определяется номером задания, назначенным на время его хранения в очереди печати. Вместо имени принтера в любой команде 1рс может использоваться ключевое слово all , обозначающее все принтеры.
Таблица 9.2. Команды работы с принтером
Команда | Назначение |
lpc start [принтер] | Запускает новый процесс демона печати |
lpc status [принтер] | Отображает состояние принтера и его очереди печати |
lpq -Рпринтер [пользователь] [задание] | Перечисляет задания в очереди печати ука- |
занного принтера | |
lprm -Рпринтер задание | Удаляет задание из очереди печати |
1рс в основном предназначается для использования системным администратором, однако команды status и start доступны всем пользователям. Все команды, перечисленные в табл. 9.2, доступны для пользователей.
Команда lpq перечисляет задания, находящиеся в очереди принтера. Аргументы командной строки позволяют пользователю выбирать очередь определенного принтера и фильтровать выводимые сведения - просматривать задания конкретного пользователя либо просто отдельные задания. Вот пример перечисления заданий очереди для принтера 1р\
$ lpq -Pip Printer: lp@crab Canon' Queue: 4 printable jobs Server: pid 1459 active Unspooler: pid 1460 active Status: waiting for subserver to exit at 14:17:47.120 Rank Owner/ID Class Job Files Size Time active alana@crab+458 A 458 /usr/share/printconf 18043 14:16:53 2 micheal@crab+477 A 477 /usr/share/printconf/t 193 14:17:38 3 james@crab+479 A 479 /usr/share/printconf 18259 14:17:43 4 daniel@crab+481 A 481 /usr/share/printconf 18043 14:17:46
Владелец задания печати может удалить его из очереди при помощи команды lprm. Предположим, пользователь daniel хочет удалить задание с номером 481. Он выполняет такую команду:
$ lprm -Pip 481 Printer lp@crab: checking perms 'daniel@crab+481' dequeued daniel@crab+481'
lpd и lpr одними из первых вошли в инструментарий Unix-систем, нацеленный на использование потенциала сетей TCP/IP. Управление принтерами - в большой степени задача системного администрирования. Здесь же описаны только аспекты lpd, связанные печатью на удаленных устройствах.