Администрирование ОС 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


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