Служба печати UNIX - это набор утилит, с помощью которых системный администратор (или администратор печати) настраивает, отслеживает и управляет принтерами системы.
Служба печати выполняет следующие функции:
При получении отправленного пользователем файла, служба печати присваивает запросу (заданию печати) уникальное имя, называемое также ИД запроса.
ИД запроса состоит из имени принтера и уникального номера, идентифицирующего файл. С помощью ИД запроса осуществляется просмотр состояния задания печати и отмена задания. Служба печати сохраняет все запросы на печать в протоколе запросов.
Задание печати буферизуется вместе с другими заданиями печати, отправленными на принтер. Все задания печати выполняются по очереди. Набор ожидающих заданий печати называется очередью печати.
Каждому принтеру соответствует очередь печати; задания в очереди можно приостанавливать, перемещать и переносить в другую очередь.
На следующем рисунке представлен процесс обработки запроса на печать.
Рис. 6-1. Краткие сведения об обработке запроса на печать
Все задания печати отправляются в программу демон буферизации (фоновую программу), создающую записи обо всех заданиях. (Эта информация хранится в протоколе запроса.) Демон создается при запуске службы печати. Демон буферизации также отвечает за мониторинг состояния принтеров и фильтров; при завершении печати задания, демон начинает печать следующего (если оно занесено в очередь).
Для настройки службы печати необходимо изменить или заменить некоторые из элементов, показанных на рисунке Краткие сведения об обработке запроса на печать (номера пунктов совпадают с номерами на рисунке).
Например, если в базе данных terminfo указано, что длина страницы, заданная пользователем, не поддерживается данным принтером, демон буферизации аннулирует запрос. Если же информация из базы данных подтверждает возможность печати с указанными параметрами, то они и используются интерфейсной программой при инициализации принтера.
Для каждого задания печати служба печати создает два файла, описывающих запрос на печать, и помещает их в каталоги /usr/spool/lp/temp и /usr/spool/lp/requests. Информация разбивается на две части для того, чтобы конфиденциальная информация хранилась в каталоге /usr/spool/lp/requests. Пользователь, создавший задание, получает права доступа к файлу из каталога /usr/spool/lp/temp; администратор печати (пользователь root) получает права доступа к файлу в каталоге /usr/spool/lp/requests.
Файлы остаются в этих каталогах до тех пор, пока задания находятся в очереди. По завершению печати задания информация из двух файлов объединяется и добавляется в протокол запросов /usr/spool/lp/logs/requests .
Структура протокола запросов такова, что извлечение информации выполняется с помощью команд оболочки UNIX. Запросы перечислены в порядке их выполнения, строки с запросами разделяются строками с ИД запросов. Все строки, следующие за строкой-разделителем отмечены одиночными символами - кодами протокола запросов, определяющими тип информации, находящейся в строке. Код отделяется от данных пробелом. Коды протокола описаны в строке, следующей за образцом записи.
Ниже приведен образец записи протокола запросов на печать:
= ps-717, uid 1532, gid 18, size 7872, Tue May 10 14:43:10 1994 z ps C 1 D ps F /usr/spool/lp/temp/717-1 P 20 t simple U hanna s 0x0010
Буква | Содержимое строки |
---|---|
= | В строке-разделителе перечислены (разделенные запятой) ИД запроса, ИД пользователя (uid) и ИД группы (gid) пользователя, создавшего запрос, количество байт в исходном файле (size), а также дата и время занесения запроса в очередь. |
C | Число печатаемых копий. |
D | Описание класса, описание принтера или слово any. |
F | Имя файла в каталоге /usr/spool/lp/temp. Эта строка повторяется для каждого печатаемого файла; файлы печатаются в порядке занесения в очередь. |
f | Имя используемой формы (если форма применяется). |
H | Тип особой обработки:
|
N | Способ извещения пользователя о завершении печати (если это
возможно):
|
O | Все опции -o, указанные в команде lp. |
P | Приоритет запроса на печать. |
p | Список печатаемых страниц. |
r | Все опции -r, указанные в команде lp, сообщающие о запросе пользователя на прямую обработку файла. |
S | Используемый набор символов. |
s | Результат работы, преобразованный в набор бит в шестнадцатеричной
форме. Программа буферизации использует следующие биты:
|
T | Заголовок баннера. |
t | Тип содержимого файла. |
U | Имя пользователя, создавшего запрос на печать. |
x | Медленный фильтр. |
Y | Список особых режимов фильтров, используемых при печати запроса. |
y | Быстрый фильтр. |
z | Принтер, используемый для выполнения запроса. Эта строка отличается от строки D в случае, когда запрос был занесен в очередь для принтера или класса принтеров any или администратор печати передал выполнение запроса другому принтеру. |
В общем, для управления службой печати необходимо пользоваться Web-администратором системы. Информация по управлению системой с помощью командной строки приведена в следующих разделах:
Команда | Описание |
---|---|
cancel | Отменяет запрос на печать файла |
lp | Отправляет файл или файлы на принтер |
lpstat | Создает отчет о состоянии службы печати |
Администратор может предоставить пользователям права на включение и выключение принтера для того, чтобы при возникновении неполадки пользователь мог выключить принтер без вмешательства администратора печати. (Однако, в вашей среде печати предоставление этих прав может быть нецелесообразным.)
Таблица команд администратора службы печати содержит команды, доступные администратору печати. Команды администратора доступны пользователю root.
Команды администратора службы печати расположены в каталоге /usr/lib. При частом использовании этих команд рекомендуется добавить строку /usr/lib в переменную PATH.
Команда | Описание |
---|---|
accept
reject | Разрешает занесение заданий в очередь указанной цели
Запрещает занесение заданий в очередь указанной цели |
cancel | Отменяет запросы к построчному принтеру. |
enable
disable | Активация принтеров с именами |
lpadmin | Установка или изменение конфигурации принтера |
lpc | Предоставляет управление построчным принтером (BSD) |
lpfilter | Установка или изменение описаний фильтров |
lpforms | Установка или изменение форм печати (для монтирования формы применяется команда /usr/sbin/lpadmin) |
lpmove | Передает вывод запросов с одной цели на другую |
lpsched
lpshut | Запускает службу печати
Останавливает службу печати |
lpsystem | Регистрирует удаленные системы в службе печати |
lpusers | Устанавливает или изменяет приоритет по умолчанию и ограничения приоритетов, запрашиваемых пользователями службы печати |
Команды accept, reject, cancel, enable, disable и lpadmin существуют также в Web-администраторе системы. Для их выполнения необходимо запустить Web-администратор системы, а затем выбрать в Оглавлении пункт Принтеры.