Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Aliens Vs Predator |#1| To freedom!
Aliens Vs Predator |#10| Human company final
Aliens Vs Predator |#9| Unidentified xenomorph
Aliens Vs Predator |#8| Tequila Rescue

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 1372.6 Kb

SCO: Пособие администратора системы Unix

Предыдущая страница Следующая страница
1 ... 88 89 90 91 92 93 94  95 96 97 98 99 100 101 ... 118
найти ее копию под именем
/usr/spool/lp/model/standard.

Что делает интерфейсная программа?

     Любая интерфейсная программа выполняет следующие задачи:
     - Инициализирует порт принтера при  необходимости. Обычная
     интерфейсная  программа использует для этого команду stty.
     - Инициализирует физический принтер.  Обычная интерфейсная
     программа  использует  terminfo и переменную оболочки TERM
     для получения управляющих последовательностей,  чтобы сде-
     лать это.
     - Печатает страницу заголовка при необходимости.
     - Печатает корректное число копий содержимого запроса.
     Интерфейсная программа не отвечает за открытие порта прин-
тера.  Это делается обслуживанием печати,  которое обращается к
вызываемому принтеру.  Соединение порта принтера дается  интер-
фейсной программе,  как стандартный выход, и принтер рассматри-
вается как управляющий терминал для интерфейсной программы  та-
ким  образом,  что  зависание  порта приводит к посылке сигнала
SIGHUP интерфейсной программе.
     Настроенная интерфейсная программа не должна завершать со-
единение принтера или любым другим способом

                         -15-74-

разинициализировать принтер.  Это позволяет обслуживанию печати
использовать интерфейсную программу только при подготовке прин-
тера и порта принтера, тогда как печать содержимого осуществля-
ется  другими  средствами,  например,  обслуживанием печати для
препринтных образцов выравнивания формы.

Как используется интерфейсная программа?

     Когда обслуживание печати направляет  выходной  запрос  на
принтер, интерфейсная программа для принтера вызывается следую-
щим образом:
Ъ2/usr/spool/lp/admins/lp/interface/P id user title copies options
file1 file2 ...

     Аргументами интерфейсной программы являются:

P              имя принтера
id             идентификатор запроса, возвращаемый lp
user           имя подключения пользователя, сделавшего запрос
title          выборочный титул, заданный пользователем
copies         число копий, запрошенных пользователем
options        список возможностей, разделенных пробелами,
               заданный пользователем, или набор обслуживания
               печати
file           полное имя пути печатаемого файла

     Когда вызывается  интерфейсная  программа,  ее стандартный
вход берется из /dev/null, стандартный выход направляется порту
принтера, а стандартный выход ошибок направляется в файл, пере-
даваемый пользователю, пославшему запрос печати.
     Стандартный интерфейс   распознает  следующие  значения  в
списке возможностей:

nobanner       Эта возможность используется,  чтобы  пропустить
               печать страницы заголовка.  Без нее страница за-
               головка печатается.
nofilebreak    Эта возможность используется для  пропуска  раз-
               бивки  страниц  между отдельными файлами данных,
               без нее разбивка делается между каждым  файлом в
               содержимом запроса печати.
cpi=decimal-number1 -  десятичное число
lpi=decimal-number2 -  десятичное число

                         -15-75-

          Эти возможности  запрашивают печать с decimal-number1
          числом колонок на дюйм  и  с  decimal-number2  числом
          строк на дюйм соответственно.  Стандартная интерфейс-
          ная программа выделяет из базы данных terminfo управ-
          ляющие последовательности,  необходимые для инициали-
          зации принтера по обработке шага  символа  и  строки.
          Слова pica,  elite и compress - это допустимые замены
          для decimal-number1  и  являются  синонимами  для  10
          столбцов на дюйм,  12 столбцов на дюйм и такого числа
          колонок на дюйм, которое возможно.
Ъ2length=decimal-number1
Ъ2width=decimal-number2
          Эти возможности задают длину и ширину,  соответствен-
          но,  печатаемых  страниц.  Стандартная   интерфейсная
          программа извлекает из базы данных terminfo управляю-
          щие последовательности, необходимые для инициализации
          принтера по обработке длины страницы и ширины страни-
          цы.
Ъ2stty='stty-option-list'
     stty-option-list - используется после списка по умолча-

          нию как аргументы в команде stty. Список по умолчанию
          используется для задания конфигурации порта по  умол-
          чанию, дополнительный список, передаваемый интерфейс-
          ной программе по умолчанию,  используется для измене-
          ния конфигурации при необходимости.
     Указанные выше возможности задаются либо пользователем при
выдаче запроса порта,  либо обслуживанием  печати  из  значений
умолчания,  устанавливаемых  администратором для принтера (cpi,
lpi, length, width, stty) или для препринтной формы, используе-
мой в запросе (cpi, lpi, length, width).
     Дополнительная информация о конфигурации принтера  переда-
ется интерфейсной программе в переменных оболочки:
    Ъ2 TERM=printer-type
          Эта переменная оболочки задает тип принтера. Значение
          используется как ключ для получения информации о воз-
          можностях   принтера   из   расширенной  базы  данных
          terminfo.
Ъ2     FILTER='pipeline'
          (конвейер)
          Эта переменная  оболочки задает использование фильтра
          для посылки содержимого запроса на  принтер,  фильтру
          передается управление принтером.

                         -15-76-

Ъ2     CHARSET=character-set
          (набор символов)
          Эта переменная  оболочки  задает набор символов,  ис-
          пользуемых при  печати  содержимого  запроса  печати.
          Стандартная  интерфейсная программа извлекает из базы
          данных terminfo управляющие последовательности, необ-
          ходимые для выбора набора символов.
     Настроенная интерфейсная программа должна  либо  игнориро-
вать эти возможности и переменные оболочки, либо должна распоз-
навать их и соответствующим образом обрабатывать.

Настройка интерфейсной программы

     Вы хотите убедиться, что настроенная интерфейсная програм-
ма задает корректные режимы stty (характеристики терминала, та-
кие как скорость передачи или выходные  параметры). Стандартная
интерфейсная программа делает это,  и вы можете следовать соот-
ветствующим образом. Смотрите раздел, который начинается с ком-
ментария оболочки:

     ## Initialize the printer port
      (инициализируйте порт принтера)

     Следуйте коду,  используемому в  стандартной  интерфейсной
программе.  Она устанавливает режимы по умолчанию и настроенные
режимы, заданные обслуживанием печати или пользователем в стро-
ке, аналогичной следующей:

Ъ2     stty Ъ1mode options 0<&1
         (режим возможности)

     Эта строка команды  берет  стандартный  вход  для  команды
stty из порта принтера. Пример строки команды stty, которая за-
дает скорость передачи 1200 и  устанавливает  некоторые  режимы
возможностей, показан далее:

   stty -parenb -parodd 1200 cs8 cread clocal ixon 0<&1

     Одной из характеристик порта, не устанавливаемой стандарт-
ной интерфейсной программой,  является управление потоком аппа-
ратуры.  Код для стандартной интерфейсной программы предполага-
ет, где эта и другие характеристики порта принтера

                         -15-76а-

могут быть установлены.  Смотрите  раздел,  который  начинается
комментарием оболочки:

# Here you may want to add other port initialization code
 (Здесь вы можете захотеть добавить другой код инициализации
 порта).

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

                         -15-77-

          ## Print the banner page
          (печатайте страницу заголовка)

     Настроенная интерфейсная программа должна  печатать  любые
сообщения об ошибках, связанные с пользователем, на стандартном
выходе или на стандартном выводе ошибок.  Сообщения,  посланные
на  стандартный  вывод ошибок,  направляются электронной почтой
пользователю,  сообщения, печатаемые на стандартном выходе, за-
канчиваются  на  напечатанной странице,  где они могут читаться
пользователем, когда он выбирает выход.
     После завершения печати ваша интерфейсная программа должна
завершиться с кодом,  сообщающим состояние задания печати. Коды
выхода интерпретируются обслуживанием печати следующим образом:
Таблица 15.10
          Коды выхода
Код       Значение для обслуживания печати
---------------------------------------------------------------------------

0         Запрос печати завершился успешно. Если произошел сбой
          принтера, он сбрасывается.
1-127     Возникла проблема при печати данного отдельного  зап-
          роса  (например,  слишком много непечатаемых символов
          или запрос превышает возможности принтера). Эта проб-
          лема не влияет на последующие запросы печати.  Обслу-
          живание печати извещает лицо, пославшее запрос о воз-
          никновении   ошибки   печати.   Если  произошел  сбой
          принтера, он сбрасывается.
128       Резервируется для  внутреннего использования обслужи-
          ванием печати LP.  Интерфейсные программы  не  должны
          завершаться с этим кодом.
129       Сбой принтера произошел при печати запроса. Эта проб-
          лема влияет на последующие запросы печати. Если восс-
          тановление при сбоях принтера заставляет обслуживание
          печати ждать администратора для регистрации проблемы,
          оно закрывает принтер.  Если восстановление при  сбое
          продолжает  печать,  обслуживание печати не закрывает
          принтер,  но пытается печатать снова через  несколько
          минут.
>129      Эти коды резервируются для  внутреннего использования
          обслуживанием печати. Интерфейсные программы не долж-
          ны завершаться с кодами в этом диапазоне.
     Как показывает таблица одним из способов извещения
администратора о сбое принтера является завершение с кодом 129.

                              -15-78-

К сожалению,  если интерфейсная программа завершается, обслужи-
вание печати не имеет другого выбора, кроме перепечатки запроса
с начала,  когда сбой сбрасывается.  Другим способом  получения
предупреждения администратором, но без необходимости перепечат-
ки всего запроса,  является посылка интерфейсной программой со-
общения о сбое обслуживанию печати, но с ожиданием сброса сбоя.
После сброса сбоя интерфейсная программа может возобновить  пе-
чать файла пользователя.  После завершения печати она может вы-
дать нулевой код выхода таким образом, как будто сбой не проис-
ходил.   Дополнительное   достоинство   состоит   в   том,  что
интерфейсная программа может  регистрировать  регистрацию  сбоя
автоматически, так, что администратор не должен открывать прин-
тер.
     Сообщения о  сбое  могут  посылаться обслуживанию печати с
помощью программы  lp.tell.  Ссылки  осуществляются  переменной
оболочки $LPTELL в стандартном интерфейсном коде. Эта программа
берет стандартный вход и посылает его обслуживанию  печати, где
он помещается в сообщение, которое предупреждает администратора
о сбое принтера.  Если стандартный вход принтера пуст,  lp.tell
не инициирует предупреждение. Проверим стандартный интерфейсный
код сразу после этих комментариев для примера того, как исполь-
зуется программа lp.tell ($LPTELL):

# Here's where we set up the $LPTELL program to capture
# fault messages.
# Here's where we print the file.
 (далее мы запрашивает у программы $LPTELL перехват сообщений о
 сбое. Далее мы печатаем файл).
Предыдущая страница Следующая страница
1 ... 88 89 90 91 92 93 94  95 96 97 98 99 100 101 ... 118
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама