Администрирование ОС Solaris


Служба печати на сервере печати


Для успешной обработки заданий на печать недостаточно просто указать свойства и имена принтеров. Потребуется еще и обеспечить работу программ, которые формируют задание на печать, отправляют его по месту назначения (к выбранному принтеру) и обеспечивают успешное выполнение задания.

По пути от приложения, инициирующего печать, до принтера задание на печать должно быть обработано несколькими программами: программой lp (или lpr) - для постановки в очередь на печать, lpsched - для обработки очереди, возможно, программами inetd и in.lpd - в случае, если задание отправлено на удаленную машину.

Рассмотрим наиболее обычный вариант печати - с клиентской машины командой lp на удаленный принтер, который доступен через компьютер printbox.

Мы распечатываем текстовый файл data.txt с помощью команды

lp -d printbox:hplj data.txt

Команда lpr в Solaris - это символическая ссылка на команду lp, поэтому что вызывать - lpr или lp - безразлично, будет вызвана одна и та же программа. Название lpr сохранено ради совместимости с другими системами UNIX.

Задание на печать формируется командой lp и отправляется на компьютер printbox. Там его должен ждать демон inetd. Как только задание добирается до порта 515 на компьютере printbox, демон inetd на нем запускает программу in.lpd (согласно записи о службе printer в /etc/inetd.conf) и передает ей пришедшее задание. Программа in.lpd помещает задание в область буферизации (/var/spool/lp/*) и сообщает программе lpsched, что ей пришло задание. Дальнейшая обработка задания ложится на службу печати, т.е. на lpsched. Именно эта программа запускает интерфейсную программу принтера, которая уже непосредственно взаимодействует с принтером.

Такая схема, показанная на рис. 22.1, иллюстрирует взаимодействие клиента и сервера печати при условии, что версия системы клиента печати не ниже Solaris 2.0, а версия системы сервера печати - не ниже Solaris 2.6.

В случае использования более старых систем Solaris схема взаимодействия будет более сложной - при отправке задания на печать на удаленный принтер будут выполнены следующие действия:


Служба печати на сервере печати

Рис. 22.1. Взаимодействие подсистем печати на компьютере - клиенте Solaris 2.6 и сервере печати Solaris 8

  • программа lp положит задание в локальную область буферизации (spool) на клиенте печати и передаст запрос локальному демону lpsched;
  • локальный демон lpsched обратится к локальному демону lpNet, который запустит дочерний процесс lpNet, а тот передаст задание на сервер печати;
  • на сервере печати демон listen передаст запрос местному демону lpNet, который, в свою очередь, запустит дочерний процесс;
  • этот дочерний процесс lpNet на сервере печати положит задание в область буферизации на сервере печати и передаст задание lpsched;
  • lpsched на сервере печати отправит задание на принтер.


  • Это иллюстрирует рис. 22.2.

    Рисунки взяты из Методического пособия компании Sun Microsystems "Системное администрирование ОС Solaris 8, часть 1".

    Служба печати на сервере печати

    Рис. 22.2.  Взаимодействие подсистем печати на компьютере - клиенте Solaris 2.0 и сервере печати Solaris 2.5.1


    Содержание раздела