On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

7. Использование принтеров

7.1. Общий обзор

В этой главе описывается управление принтерами в системе UNIX System V Release 4.0 Version 1.0 с помощью команд или выбора меню. Оно организовано таким образом, чтобы провести параллель между структурой Line Printer Services Configuration (Конфигурация сервиса линейных принтеров) и Operations selection (Выбор операций) (которым обращаются как к Printer Services - Сервису принтера) и меню System Administration.

Пакет LP представляет собой дополнительное обеспечение к базовому программному обеспечению UNIX. Он состоит из одной или нескольких гибких дискет из набора для инсталяции и инсталируется или с помощью выбора Install Software Packages (Инсталяция программных пакетов) из меню Software, или с помощью запроса команды pkgadd -d diskette1.

После осуществления выбора из меню, система делает запрос на заполнение формы, указывающей нахождение программного обеспечения (diskette1) и имя программного пакета (LP). Если вы не знаете конкретных требований к инсталяции, ответьте значениями по умолчанию, подставив их в другие элементы формы. Предварительным условием использования пакета LP является проведение инсталяции пакета утилит сетевого сервиса (NSV). Он находится на отдельной гибкой дискете в вашем наборе для инсталяции, а его инсталяция выполняется также как и инсталяция пакета LP.

В оставшейся части этой главы описываются каждый из возможных выборов из базового меню принтеров, а также команды, эквивалентные им. Предлагается следующий выбор:

	2 Line Printer Services Configuration and Operation
	--------------------------------------------------------
	classes- Manage Classes of Related Printers
	filters- Manage Filters for Special Processes
	forms  - Manage Pre-printed Forms
	operations - Perform Daily Printer Service Operations
	printers   - Configure Printers for the Printer Service
	priorities - Assign Print Queue Priorities to Usera
	requests   - Manage Active Print Requests
	status - Display Status of Printer Service
	systems- Configure Connection to Remote Systems
	preSVR4- Printer Setup

Группу принтеров можно определить, обозначив один вид, называемый class. Когда пользователь предписывает распечатку файла какому-то классу принтеров, LP берет первый принтер из класса, который будет свободным.

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

Когда вы выбираете classes из меню Printer Services (Сервис принтеров) на экран выводится следующее меню.

	3 Manage Classes of Related Printers
	-------------------------------------------------------
	add- Add a New Class
	list   - List Printers in Classes
	modify - Modify the Membership of a Class
	remove - Remove Classes

7.2.1. Добавление нового класса

Выбор add (добавить) выводит на экран форму, предлагающую вам обеспечить имя нового класса и список принтеров в этом классе. Имена классов и имена принтеров должны быть уникальными.

Добавление нового класса можно также осуществить, дав команду:

	/usr/sbin/lpadmin -p printer-name -c class-name

где class-name еще пока не существует.

7.2.2. Просмотр принтеров из классов

Выбор list (просмотр) выводит на экран форму, предлагающую вам обеспечить имена одного или нескольких классов принтеров. После нажатия ENTER, система выводит на экран список принтеров, которые входят в состав каждого класса.

7.2.3. Модификация состава класса

Чтобы выполнить модификацию состава класса, используя меню, выберите modify (модифицировать) из меню Classes. На экран будет выведена форма, предлагающая указать имя класса и выбор добавления или удаления принтеров из этого класса (добавление - это выбор по умолчанию). Когда вы сделаете свой выбор, поступит запрос на указание имен принтеров, которые должны или добавляться, или удаляться.

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

	/usr/sbin/lpadmin -p printer-name -r class-name

Когда из класса будет удален последний принтер, класс автоматически удаляется.

7.2.4. Удаление класса

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

Чтобы выполнить удаление с помощью команды, введите:

	/usr/sbin/lpadmin -x class-name

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

7.3.1. Преобразование файла

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

LP позволяет присваивать type каждому принтеру, который вы добавляете к системе, а также позволяет пользователю присваивать type каждому файлу, предписанному к распечатке. Эта информация используется для подбора файла и принтера системы, который бы воспроизводил этот файл наилучшим образом.

Каждому фильтру, добавляемому к системе, также присваивается тип, определяя тип ввода, который он может принять и тип вывода, который он может дать. Если LP не в состоянии подобрать для типа файла подходящий тип принтера, она консультируется с фильтрами, чтобы найти тот, который выполнит преобразование.

7.3.1.1. Специальные режимы распечатки

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

  • тип ввода;
  • тип вывода;
  • тип принтера;
  • шаг расположения знаков (в строке);
  • шаг строки;
  • длина страницы;
  • ширина страницы;
  • страницы для распечатки;
  • набор символов;
  • имя формата;
  • количество копий;
  • режимы.

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

7.3.1.2. Обработка сбоев принтера

Пакет LP позволяет выявлять сбои принтера, и для большинства принтеров выявляет их досконально. Однако, он имеет ограниченные возможности проверки "зависаний" и значительных задержек распечатки. Должным образом спроектированный фильтр может обеспечить более совершенное выявление сбоев в конкретном принтере.

7.3.2. Меню управления фильтрами

Когда вы выбираете filters из меню Printer Services, на экран выводится такое меню:

	3 Manage Filters for Special Processing
	------------------------------------------------------
	add - Add a New Filter
	list- Display Filter Information
	modify  - Modify Filters
	remove  - Remove Filters
	restore - Restore Filters to Factory Settings

7.3.3. Добавление фильтра

Выбор add выводит на экран такую форму:

	4 Add a New Filter
	----------------------------------------------
	New Filter
	Model Filter: default-filter

Система приходит с несколькими встроенными фильтрами. Нажмите CHOICES, чтобы вывести список возможных фильтров. Вы можете или выбрать один фильтр из списка, или покинуть список, набрать имя фильтра и нажать SAVE. Форма для указания фильтра выводится с установками для этого фильтра по умолчанию, уже введенными. Затем вы можете модифицировать эти установки, включая свой собственный фильтр, или вы можете просто запустить один из встроенных фильтров. Ваш ответ на New Filter (новый фильтр) - это ввод имени, которое вы будете использовать для ссылки к этому фильтру далее. Формат такой:

	5 Add/Modify Filter <filter-name>
	----------------------------------------------
	Input types:   simple
	Output types:  simple
	Printer types: any
	Printers:any
	
	Fast or slow filter: slow
	
	Filter command:
	
	New filter options? Yes
Input types -
это список типов файлов, которые может обработать фильтр. Имя типа файла может включать до 14 символов (включая дефисы, но не символы подчеркивания);
Output types -
это список типов файлов, которые может дать фильтр как вывод. Имена типов вывода должны согласовываться с типами принтеров вашей системы или с типами вводов, обрабатываемых другими фильтрами. LP соберет фильтры вместе в программный канал shell, чтобы получить новый фильтр, если она считает, что некоторые проходы с помощью различных фильтров нуждаются в преобразовании файла;
Printer types -
это список типов принтеров, для которых фильтр может преобразовать файлы. Для большинства фильтров этот список совпадает со списком типов вывода, но может быть и другим. Если они одинаковые, оставьте эту часть определения фильтров незаполненной;
Printers -
фильтр должен быть в состоянии работать со всеми принтерами, принимающими вывод, который дает фильтр;
Fast or Slow Filter -
LP различает "быстрые" фильтры и "медленные" фильтры. Быстрые фильтры помечаются "fast", или потому, что предполагают минимальные дополнительные расходы при подготовке файла к печати, или потому, что они должны иметь доступ к принтеру, когда функционируют. Фильтры, которые выявляют сбои принтера, например, всегда - "быстрые" принтеры. Фильтры, которые требуют большого количества расходов при подготовке файла, и могут не иметь доступа к принтеру, следует пометить как "slow". LP прогоняет медленные фильтры в фоновом режиме без привлечения принтера;
Filter Command -
это полное имя программы фильтра, которая будет функционировать. Если есть какие-то устойчивые параметры, которые всегда будут нужны программе, вы можете включить их в имя;
Filter Options: Templates -
режимы и аспекты распечатки регистрируются в списке шаблонов. Templates-list - это список шаблонов, отделенных друг от друга запятыми и имеющими следующий формат:
	keyword pattern = replacement

keyword помечает шаблон, который регистрирует конкретную характеристику распечатки. pattern - это или значение характеристики, или звездочка (*), которая ставится как обозначение структурного нуля "любое значение".

Характеристика keyword Possible patterns
Тип ввода INPUT content-type
Тип вывода OUTPUT content-type
Тип принтера TERM printer-type
Шаг расположения знаков CPI integer
Шаг строки LPI integer
Длина страницы LENGTH integer
Ширина страницы WIDTH integer
Страницы на печать PAGES page-list
Набор символов CHARSET character-set
Имя формата FORM form-name
Количество копий COPIES integer
Режимы MODES mode

Значения шаблонов INPUT и OUTPUT идут от типа файла, который необходимо преобразовать с помощью фильтра, и типа вывода, который соответственно необходимо получить. Каждый из них будет представлять собой тип, зарегистрированный фильтром.

Значение шаблона TERM - это тип принтера.

Значения шаблонов CPI, LPI, LENGTH и WIDTH идут от запроса пользователя, используемой формы или значений для принтера по умолчанию.

Значения шаблона PAGES - это список страниц, которые нужно распечатать. Обычно это список диапазона страниц - или пара чисел или одно число, каждый диапазон отделен от другого запятой (например, 1-5,6,8,10 для страниц с 1 по 5,6,8 и 10). В то же время, какое бы значение не было дано в параметре -P в запрос на распечатку, оно передается без изменений.

Значение шаблона CHARSET - это имя используемого набора символов.

Значение шаблона FORM - это имя распечатываемого формата, если таковой имеется.

Значение шаблона COPIES - это количество копий файла, которое необходимо сделать. Если фильтр использует этот шаблон, LP сократит количество копий отфильтрованного файла, который она будет распечатывать, до 1, так как эта "single copy" (одна копия) будет фактически множеством копий, получаемых с помощью фильтра.

Значение шаблона MODES идет от параметра -y команды lp, которая используется для предписания запроса на распечатку. В связи с тем, что пользователь может дать несколько параметров -y, они могут стать несколькими значениями шаблона MODE. Значения будут прилагаться в порядке слева направо, задаваемом пользователем.

Замена показывает как значение шаблона должно задаваться программе фильтрации. Обычно это бывает буквенный параметр, иногда со структурным нулем символом-заполнителем *, включенным для показа направления движения значения.

Примеры.

Программа фильтрации называется /usr/bin/npf. Она обрабатывает два типа ввода - nroff37 и X, дает тип вывода TX и будет работать с любым принтером типа TX. Программа принимает три параметра:
-Xb только для типа ввода X;
-l integer для длины страницы вывода;
-w integer для ширины страницы вывода.

Определение вывода будет выглядеть следующим образом:

	Input types: X,nroff37
	Output types: TX
	Printer types: TX
	Command: /usr/bin/npf
	Options: INPUT X = -Xb, LENGTH * = -1*,
	WIDTH * = -W*

Программа фильтрации называется /usr/bin/x9700. Она обрабатывает один тип ввода - troff, дает тип вывода 9700 и будет работать на принтере типа 9700. У программы есть один устойчивый параметр, -ib, и она принимает три других параметра:

-l integer для длины страницы вывода;
-s name для набора символов;
-o portrait или
-o landscape
для ориентации бумаги на портрет или пейзаж.

Вы решили, что ваши пользователи дают сокращения port и land, когда они запрашивают об ориентации бумаги. В связи с тем, что эти параметры не характерны для LP, пользователи будут указывать их, используя параметр -y команды lp.

Определение фильтра будет выглядеть следующим образом:

	Input types: troff
	Output types: 9700
	Printer types: 9700
	Command: /usr/bin/x9700 -ib
	Options: LENGTH * = -l *,
		CHARSET * = -S *,
		MODES port = -o portrait,
		MODES land = -o landscape

(Последняя строка разделена на несколько строк в целях удобочитаемости; вы будете вводить ее как одну строку).

Примечание. Если значение характеристики или замена должны включать запятую или знак равенства (=) поставьте перед ними косую черту. Косая черта перед этими двумя символами будет удалена, когда значение характеристики или замена будут уже использоваться (все другие знаки косой черты останутся без изменений).

7.3.3.1. Добавление фильтра с помощью команды

При определении нового фильтра с помощью команды, сначала соберите информацию об этом фильтре, затем введите его в файл или прямо в команду lpfilter. Получите информацию в том виде, в каком она перечислена в предыдущем меню: Input types: input-type-list Output types: output-type-list Printer types: printer-type-list Printers: printer-list Filter type: fast or slow Command: simple-command Options: template-list

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

	/usr/sbin/lpfilter -f filter-name -F file-name
	/usr/sbin/lpfilter -f filter-name -

Первая команда получает определение фильтра из файла, а вторая команда - из стандартного ввода.

7.3.4. Вывод фильтра на экран

Вы проверяете определение фильтра после того, как он будет добавлен в LP или с помощью выбора list из меню Manage Filters (Управление фильтрами), или с помощью команды. Если вы выбираете list из меню, вам поступит подсказка на отображение имени фильтра. Команда lpfilter выводит на экран определение фильтра в формате: /usr/sbin/lpfilter -f filter-name -l (optionally:) >file-name

7.3.5. Модификация фильтра

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

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

7.3.5.1. Удаление фильтра

Чтобы удалить фильтр с помощью меню, выберите этот элемент и введите имя фильтра, который хотите удалить. Чтобы удалить фильтр с помощью команды, наберите следующее:

	/usr/sbin/lpfilter -f filter-name -x

Примечание. Добавление, изменение или удаление фильтров может привести к тому, что запросы на распечатку, все еще стоящие в очереди, будут уничтожены. Из-за вероятности этого, вы, возможно, захотите внести изменения в фильтры в то время, когда LP используется не очень активно.

7.3.6. Предварительный формат распечатки

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

В этой части описывается как управлять использованием предварительных форматов распечатки с помощью меню или команды. Выберите forms из меню Printer Services, что даст следующий формат:

	3 Manage Pre-printed Forms
	-------------------------------------
	add- Add a New Form
	list   - List Form Attributes
	modify - Modify a Form
	remove - Remove Forms

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

7.3.7. Добавление или модификация формата

Когда вы выбираете add из меню, вы заполняете короткий формат, давая имя формату и именуя уже существующий формат. form-name содержит 14 или меньшее число символов, цифр и символ подчеркивания. Именованный формат является моделью для характеристик новых форматов. Затем вы редактируете те характеристики, которые в новом формате будут другими. Первоначально система обеспечивает пустой формат, носящий имя default-form. Когда будет определено несколько форматов, повторяющийся выбор CHOICES будет циклически повторять имена имеющихся в наличии форматов. Дальнейший выбор SAVE выведет на экран выбранный формат модели.

default-form такой:

	5 Add/Modify Form <form-name>
	------------------------------------------------------
	Page length:  Page width:
	Line pitch:Character pitch:
	Number of Pages:
	Character set choice:
	Ribbon color:
	Comment:
	
	Alignment pattern file:
	
	Alert command:
	
	Number of requests: (Only appears if an  alert  command is supplied)
	Frequency of alerts: (Only appears if an alert  command is supplied)
	Users denied:
	Users allowed:
Page length -
длина формата или каждой страницы в многостраничном формате. Может быть выражена в виде множества строк, или размером в дюймах или сантиметрах;
Page width -
ширина формата, выраженная в колонках, дюймах или сантиметрах;
Number of pages -
количество страниц в многостраничном формате. LP использует это количество с фильтром (если такой есть в наличии), чтобы ограничить значение выравнивания до одного длинного формата. Если нет фильтра для усечения значения выравнивания, LP пропускает этот этап;
Line pitch -
насколько близко друг от друга расположены отдельные строки формата. Выражается или в строках на дюйм, или строках на сантиметр;
Character pitch -
насколько близко друг к другу расположены символы формата. Подобно шагам в строке выражается или в символах на дюйм, или в символах на сантиметр;
Character set choice -
набор символов, печатающее колесо или касета шрифтов, которые необходимо использовать, когда используется этот формат, если он специальный;
Ribbon color -
если формат всегда должен распечатываться с использованием определенного цвета ленты, то LP может напомнить какой цвет использовать при монтировании формата;
Comment -
любой комментарий, который вы хотите сделать по формату. Этот комментарий существует для того, чтобы можно было убедиться, что из себя представляет формат, когда его следует использовать;
Alignment Pattern -
образец файла, который использует LP для заполнения одного пустого формата. При монтировании формата, вы можете проверить этот образец, чтобы убедиться, что распечатка выравнена по формату должным образом;

Примечание. Если вы не хотите, чтобы информация распечатывалась в форматах-образцах, что вполне вероятно при выравнивании квитанций, например, - то вам нужно наложить маску на требуемые данные. LP хранит значение выравнивания в надежном месте, откуда только вы (т.е. пользователь lp и суперпользователь root) можете считать его.

Allerting to Mount a Form or Print-Wheel -
вы можете организовать механизм предупреждения, когда число запросов, ожидающих монтируемые формат или печатное колесо, превысит какой-то порог допустимого. Способом такой организации является подача команды, которую выдаст LP, когда такой порог будет достигнут. Скорее всего это будет команда mail или команда для записи сообщения на терминал. Вы можете также отказаться от получения предупреждений, в этом случае вы сами будете отвечать за контроль того, распечатан какой-то запрос или не распечатан по причине плохого монтирования формата.

Вы также можете организовать повторные предупреждения через каждые несколько минут, до тех пор пока не будет смонтирован формат, или вы можете выбрать только одно предупреждение на формат.

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

	 /usr/sbin/lpadmin -S print-wheel -A mail -Q int -W minutes
	 /usr/sbin/lpadmin -S print-wheel -A write -Q int -W minutes
	 /usr/sbin/lpadmin -S print-wheel -A `command` -Q int -W minutes
	 /usr/sbin/lpadmin -S print-wheel -A none

Первые две команды дают указание LP отослать почтовое сообщение или записать это сообщение прямо в терминал, соответственно для каждого предупреждения. Третья команда дает указание LP запускать command для каждого предупреждения. Четвертая команда дает указание LP никогда не отсылать предупреждение, когда нужно монтировать формат или печатное колесо. Количество запросов, которые должны ждать, это int и minutes, равно количеству минут между повторными предупреждениями. Если вы запустите механизм получения повторных предупреждений, вы можете дать указание LP прекратить посылать вам предупреждения в текущем случае, дав следующую команду:

	/usr/sbin/lpadmin -S print-wheel -A quiet

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

Если тип формата или печатного колеса - all во всех вышеперечисленных командах, то условие использования предупреждения будет применяться во всех форматах и печатных колесах, для которых механизм предупреждения уже определен.

Users Denied/Users Allowed - это список имен регистрации пользователей, которым особым образом запрещается или разрешается использовать формат. Если список разрешений не пустой, список запрещений игнорируется. Если список разрешений пуст, используется список запрещений. Если оба списка пусты, то ограничений на использование формата не существует.

Размещение any или all (любой и все) в списке разрешений позволяет использовать формат каждому; размещение any или all в список запрещений запрещает кому-либо использовать формат, за исключением пользователя lp и суперпользователя root.

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

	Page length: scaled-number
	Page width: scaled-number
	Number of pages: integer
	Line pitch: scaled-number
	Character pitch: scaled-number
	Character set choice: character-set-name,mandatory
	Ribbon color: ribbon-color
	Comment: comment
	Alignment pattern: alignment-pattern

За исключением Alignment pattern информация может появляться в любом порядке. Aligntment pattern должна быть последней из данной информации. Если comment должен содержать строку, начинающуюся с любой из ключевых фраз, вначале следует ввести символ ">". Это значит, что любой начальный символ ">" будет убран из комментария при отображении. Необязательно давать всю информацию. Отсутствующей информации присваиваются следующие значения по умолчанию:

Элемент Значение по умолчанию
Page length 66 lines
Page width 80 columns
Number of pages 1
Line pitch 6
Character pitch 10
Character set choice any
Ribbon color any
Comment (no default)
Alignment pattern (no default)
Alerts none
Users allowed all
Users denied none

7.3.7.1. Определение формата с помощью команды

Чтобы определить формат, используйте одну из следующих команд:

	/usr/sbin/lpforms -f form-name -F file-name
	/usr/sbin/lpforms -f form-name -

Первая команда получает определение формата из файла; вторая команда - через диалог.

Если вам нужно изменить формат, повторно введите одну из тех же команд. Вам нужно только дать измененную информацию; информация, которую вы оставляете без изменений, будет той же. Вы можете добавить имена пользователей, которым разрешается или запрещается доступ, используя следующие команды:

	/usr/sbin/lpforms -f form-name -u allow:user-list
	/usr/sbin/lpforms -f form-name -u deny:user-list

user-list - это список имен пользователей, отделенных запятой или пробелом. Если для отделения имен друг от друга вы используете пробелы, заключите весь список (включая и allow: или deny:) в кавычки. Использование allow:all разрешает доступ всем; deny:all всем запрещает доступ.

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

	/usr/sbin/lpforms -A mail -Q integer -W minutes
	/usr/sbin/lpforms -A write -Q integer -W minutes
	/usr/sbin/lpforms -A `command` -Q integer -W minutes
	/usr/sbin/lpforms -A none

Первые две команды дают указание LP послать вам почтовое собщение или записать сообщение прямо на ваш терминал. Третья команда дает указание LP запустить command вместо каждого предупреждения. Четвертая команда дает указание LP не отсылать предупреждение, когда нужно смонтировать формат. Количество запросов, которые нужны для ожидания формата, заданные как integer и minutes, представляют собой число минут между повторными предупреждениями.

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

	-A `mail user-name` или -A `write user-name`

После запуска механизма получения повторных предупреждений вы можете дать указание LP прекратить отсылку ваших предупреждений в текущем случае, если просто дадите команду:

	/usr/sbin/lpforms -f form-name -A quiet

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

Если form-name - это all во всех из вышеприведенных команд, то условие использования предупреждений применяется ко всем форматам.

7.3.8. Вывод формата на экран

Выбор list из меню позволяет выводить на экран определение любого или всех форматов в системе (значение по умолчанию - all).

7.3.8.1. Выведение формата на экран с помощью команды

Вы можете проверить определение формата, после того как добавите его в LP. Есть две команды, которые можно использовать в зависимости от той информации, которую хотите проверить. Команда lpforms отображает определение формата в том виде, который подходит для повторного ввода. Команда lpstat отображает текущее состояние формата.

Используйте одну из команд, чтобы проверить определенную форму:

	/usr/sbin/lpforms -f form-name -l
	/usr/sbin/lpforms -f form-name -l (optional)>file-name
	lpstat -f form-name
	lpstat -f form-name -l

Alignment pattern не демонстрируется, если команда lpstat используется для защиты любого потенциально чувствительного содержимого.

7.3.9. Удаление формата

Чтобы удалить формат, нужно выбрать remove из меню (и введите имя формата, который нужно удалить) или используйте следующую команду:

	/usr/sbin/lpforms -f form-name -x

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

	3Perform Daily Printer Service Operations
	--------------------------------------------------------
	accept  - Allow  Class(es)  and/or  Printer(s) to
						Accept Print Requests
	control - Start (Stop) the Printer Service
	disable - Disable Printer from Printing
	enable  - Enable Printer for Printing
	mount   - Mount Form or Font on a Printer
	reject  - Stop  a  Printer  from  Accepting Print Requests
	set default - Set the Default Printer Destination
	unmount - Unmount a Form or a Printwheel from a Printer

7.4.1. Принятие запросов для принтера или класса принтеров

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

После того как условие, ведущее к отказу запросов, будет исправлено или изменено, выбирайте или эту опцию меню (и назовите принтер или класс, которые будут запускаться), или введите команду:

	/usr/sbin/accept printer-or-class-name

Вы можете принять запросы для нескольких принтеров или классов в одной команде, перечислив их имена на той же строке.

7.4.2. Запуск или остановка сервиса принтера

Опция меню control или запускает сервис принтера, если он не функционирует, или останавливает его работу, если он функционирует.

Этот выбор эквивалентен выполнению команды /usr/lib/lp/lpsched, которая запускает сервис принтера, или команде /usr/sbin/lpshut, которая останавливает сервис принтера.

7.4.3. Запрещение использования принтера

Выбор disable приведет к немедленной остановке работы указанного принтера. Когда вы выбираете эту опцию, вам нужно будет заполнить следующую форму:

	4 Disable Printer from Printing
	-------------------------------------------------------
	Printer:
	What should happen to any requests pending? restart
	Reason for disabling

Команда, запрещающая работу принтера, такая:

	disable printer-name

7.4.4. Разрешение использования принтера

Выбор enable приведет к возобновлению работы указанного принтера. Команда, разрешающая работу принтера такая:

	enable printer-name

Примечание. При инсталяции вы можете разрешить или запретить использование принтеров всеми пользователями (all).

7.4.5. Монтирование формата или шрифта

Прежде чем LP запустит файлы распечатки, которым нужны предварительные форматы распечатки или печатные колеса, вам необходимо будет смонтировать их в принтере. Если в формате или печатном колесе был установлен механизм предупреждения, вы получите предупреждение, когда достаточное количество запросов будет организовано в очередь, ожидая монтирования. Выбор mount выведет на экран следующий формат, который вы должны заполнить (font и print wheel являются синонимами):

	4 Mount Form or Font
	--------------------------------
	Printer:
	Form to be mounted:
	Printwheel to be mounted:
	Print an alignment pattern: no

Монтирование формата или печатного колеса предполагает сначала их загрузку в принтер, а затем уведомление LP о том, что они смонтированы. Вполне разумным первым шагом является запрещение работы принтера. Чтобы проинформировать LP, что формат или печатное колесо смонтированы, при помощи команды введите следующее:

	/usr/sbin/lpadmin -p printer-name -M -S print-wheel-name
				-f form-name -a -o filebreak

Оставьте без внимания -S print-wheel-name, если вы монтируете только формат, или оставьте -f form-name -a -o filebreak, если монтируете только колесо.

Если значение выравнивания (alignment pattern) было зарегистрировано с форматом, вы можете попросить повторной его распечатки после монтирования формата, пока вы не подгоните принтер до соответствия со значением выравнивания. Параметр -o filebreak просит сервисные средства принтера LP добавить "formfeed" после каждой копии значения выравнивания, если такие существуют. Вас попросят нажать клавишу возврата, прежде чем будет распечатана каждая копия значения выравнивания.

Фактическая управляющая последовательность, используемая для "formfeed" (подача формата), зависит от действующего принтера, и бывает получена из базы данных terminfo. Если значение выравнивания уже включает "подачу формата", оставьте параметр -o filebreak без внимания.

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

7.4.6. Отказ запросам для принтера или класса принтеров

Чтобы остановить принятие любых новых запросов для принтеров или класса принтеров, выберите reject из меню, или сделайте это с помощью команды.

Если вы используете выбор меню, вы затем введете имена принтеров и классов принтеров, чтобы отвергнуть запросы, и по желанию причину отказа запросам.

При использовании команды, наберите:

	/usr/sbin/reject -r "reason" printer-or-class-name

Чтобы отвергнуть запросы для нескольких принтеров или классов в одной команде, перечислите их имена на одной строке, отделяя имена друг от друга пробелами. reason (причина) будет будет выводиться на экран каждый раз, когда кто-то будет пытаться распечатать файл на принтере. Если вы не хотите указывать причину, не используйте -r.

Любые текущие запросы, организованные в очередь для принтера, будут продолжать распечатывать до тех пор, пока работа принтера разрешена.

7.4.7. Установка пункта назначения по умолчанию

Выбор set default из меню позволяет указать пункт назначения запросов на распечатку, когда он не задается специально. Сначала должен существовать принтер или класс принтеров.

Вы также можете сделать это, установив переменную командного файла LPDEST или с помощью команды.

Дайте принтеру или классу принтеров пункт назначения по умолчанию, введя следующую команду:

	/usr/sbin/lpadmin -d printer-or-class-name

Если вы позже решите, что пункт назначения по умолчанию не нужен, введите нулевой printer-or-class-name как в следующей команде:

	/usr/sbin/lpadmin -d

Если вы не устанавливаете пункт назначения по умолчанию, его не будет. Пользователям придется явно именовать принтер или класс принтеров в каждом запросе на распечатку, или вам придется установить переменную командного файла LPDEST с именем пункта назначения.

7.4.8. Размонтирование формата или шрифта

Выбор unmount позволяет указать, что формат или шрифт на указанном принтере, должен быть размонтирован.

Если вы хотите размонтировать формат или печатное колесо с помощью команд, используйте следующую:

	/usr/sbin/lpadmin -p printer_name -M -S none -f none

Оставьте без внимания "-S none", если вы хотите размонтировать только формат. Оставьте без внимания "-f none", если вы хотите размонтировать только печатное колесо.

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

	3 Configure Printers for the Printer Service
	------------------------------------------------------
	add- Add a New Printer
	list   - Display Printer Configuration Information
	modify - Modify Printer Configuration
	remove - Remove Printer

7.5.1. Добавление нового принтера

Когда вы выбираете опцию меню add, вы получаете следующий экран:

	4 Add a New Printer
	-------------------------------------------------------
	Printer name: <this-is-mandatory>
	System name:
	Printer type: unknown
	Similar printer to use for defaults% none
	Do you want to use standart configurations (eg  alerts, banners)? yes
	Do you want to use standart port settings (eg baud rate, parity)?  yes
	Device or Basic Networking Address: <this-is-mandatory>

Вторичные форматы могут понадобиться, если вы не используете установки по умолчанию или стандартные установки.

7.5.1.1. Имя принтера

Наличие имени принтера обязательно. Оно используется для идентификации принтера во всех последующих операциях. Имя может содержать не более 14 буквенно-цифровых символов, включая символы подчеркивания. Команда для добавления имени нового принтера такая:

	/usr/sbin/lpadmin -p printer-name [-vdevice][-U dialout]

7.5.1.2. Имя системы

Имя системы является идентификатором компьютерной системы, к которой этот принтер подсоединяется. Команду uname можно использовать для обнаружения имени системы.

7.5.1.3. Тип принтера

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

Тип принтера является групповым именем для принтера.

Команда для указания типа принтера такая:

	/usr/sbin/lpadmin -p printer-name -T printer-type

Усли вы не определяете тип принтера, используется тип по умолчанию unknown.

7.5.1.4. Сходный принтер, используемый по умолчанию

Нажатие CHOICES даст вам список принтеров системы, плюс дополнительный выбор "none". Выберите один из них в качестве вторичного принтера по умолчанию. Значение по умолчанию - "none".

7.5.1.5. Нестандартные конфигурации

Если вы решите не использовать стандартные конфигурации для принтера, вы получите следующий формат:

	 5 Configure Printer "id," Local Printer Subtask
	------------------------------------------------------------
	Class:  none
	Description of the printer:
	Printer type:   unknown
	File types printable without filtering: simple
	Can a user skip the banner page?no
	Default character pitch:Use printer defaults
	Default line pitch: Use printer defaults
	Default page width: Use printer defaults
	Default page length:Use printer defaults
	Command to run for alerts:  "mail lp"
	Frequency of alert (in minutes):once
	Printer recovery method:continue
	Is the printer also a login terminal?   no
Description -
это описание может содержать любое сообщение по вашему желанию, включая номер комнаты в которой находится принтер, кого вызывать в случае сбоев принтера и т.д.

Вы можете увидеть сообщение, когда используете команду lpstat -D -p printer-name.

Чтобы добавить описание при помощи команды, при добавлении принтера, наберите следующее:

	/usr/sbin/lpadmin -p printer-name -D 'text'
File Types Printable Without Filtering -
при добавлении принтера, который может принимать различные типы файлов, вам необходимо просмотреть имена типов файлов, которые он может принять и которые не требуют фильтрации.

Когда файл предписывается LP для распечатки, сервис принтера ведет поиск принтера, способного выполнить это задание. Сервис может идентифицировать требуемый принтер или по имени типа содержимого или по имени типа принтера. Следовательно, вы можете указать имя (или никакого имени), когда будете предписывать файл для распечатки.

Вам не нужно просматривать все типы файлов для принтера. Если вы не делаете этого, тип принтера будет использоваться как имя типов файлов, которые может обработать принтер. Если вы не указали тип принтера, LP предположит, что принтер может распечатать только файлы типа содержимого simple (т.е. он содержит только распечатываемые символы ASCII и стандартные управляющие символы (пробел, метка табуляции, подача строки, возврат каретки или подача формата). По команде укажите список типов содержимого следующим образом:

	/usr/sbin/lpadmin -p printer-name -I content-type-list

content-type-list - это список имен, отделенных друг от друга запятой или пробелом. Если вы используете для отделения пробелы, заключите весь список (но только не -I) в кавычки.

Banner Necessary -
заглавная страница показывает кто запрашивает распечатку, ID запроса, и когда он был распечатан, а также разрешает использование необязательного заголовка, который может использовать тот, кто запрашивает печать, чтобы облегчить идентификацию распечатки. Выбирайте или параметр no-banner или введите:
	/usr/sbin/lpadmin -p printer-name -o nobanner

Если вы позже передумаете, вы можете удалить этот выбор, введя нижеприводимую команду:

	/usr/sbin/lpadmin -p printer-name -o banner
Default Printing Attributes -
атрибуты распечатки обычно определяются по спецификациям формата или по атрибутам по умолчанию, указываемым здесь.

Вы можете самостоятельно указать: ширину страницы, длину страницы, шаг расположения символа, а также шаг строки. Первые два параметра можно задать в колонках и строках, дюймах или сантиметрах. Последние два задаются как символы и строки на дюйм или на строку. Кроме того, шаг расположения символа можно указать как "pica" для 10 символов на дюйм, "elite" для 12 символов на дюйм или сжатый для максимального символа на дюйм, который может обеспечить принтер (вплоть до предельных 30 символов на дюйм).

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

	/usr/sbin/lpadmin -p printer-name -o width=scaled-number
	/usr/sbin/lpadmin -p printer-name -o length=scaled-number
	/usr/sbin/lpadmin -p printer-name -o cpi=scaled-number
	/usr/sbin/lpadmin -p printer-name -o lpi=scaled-number

Добавьте букву "i" к scaled-number, которая будет указывать дюймы или букву "c", указывающую сантиметры. Буква "i" для шага расположения символа (cpi) или шага строки (lpi) является избыточной. Вы также можете задать "pica", "elite" или "compressed" вместо числа для шага расположения символа.

Fault Altering -
LP обеспечивает основу для выявления сбоев принтера и предупреждения о их возникновении.

При заполнении формата в меню, вы указываете команду, выполняющуюся, если требуется предупреждение о сбое, а также частоту выдачи такого предупреждения.

Если вы решите не получать никаких предупреждений, вам нужно будет выбрать способ выявления сбоев и их фиксации; LP будет продолжать использовать принтер, который дал сбой.

Без фильтра, который обеспечивает очень хорошее выявление сбоев, LP не может автоматически определить когда произошло гашение сбоя, за исключением попытки распечатать другой файл. Он предполагает, что сбой погашен, когда файл успешно ею распечатывается. До этого времени, если вы запросите только одно предупреждение на сбой, вы не получите другого предупреждения. Если принтер вновь даст сбой после того, как вы зафиксируете один сбой, но до того, как LP сделает попытку распечатать другой файл, или, если ваша попытка зафиксировать сбой неудачна, вы не будете уведомлены. Получение повторных предупреждений на сбой или запрос ручного повторного разрешения использования принтера помогут преодолеть эту проблему. Чтобы организовать механизм предупреждения принтера о сбое с помощью команды, введите одну из следующих:

	/usr/sbin/lpadmin -p printer-name -A mail -W minutes
	/usr/sbin/lpadmin -p printer-name -A write -W minutes
	/usr/sbin/lpadmin -p printer-name -A 'command' -W minutes
	/usr/sbin/lpadmin -p printer-name -A none

Первые две команды дают указание LP отослать почтовое сообщение или записать сообщение прямо в ваш терминал. Третья команда дает указание LP запускать command для каждого предупреждения. minutes - это число минут между повторными предупреждениями. Четвертая команда дает указание LP не отсылать вам предупреждение при возникновении сбоя.

После возникновения сбоя и получения повторных предупреждений вы можете дать указание LP остановить отсылку предупреждений для текущего сбоя, дав следующую команду:

	/usr/sbin/lpadmin -p printer-name -A quiet

Если printer-name - all в любой из вышеуказанных команд, условие использования предупреждения будет применяться во всех принтерах.

Fault Recovery -
из меню вы можете ввести "continue", "restart" или "wait", представляющие собой методы восстановления после сбоев.

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

Чтобы указать способ, которым LP должна восстанавливаться после гашения сбоя, введите одну из следующих команд:

	/usr/sbin/lpadmin -p printer-name -F continue
	/usr/sbin/lpadmin -p printer-name -F beginning
	/usr/sbin/lpadmin -p printer-name -F wait

Эти команды дают соответственно LP указания продолжить с верхней части страницы, вновь начать с самого начала или подождать, пока вы введете команду enable для повторного разрешения использования принтера. Если вы не указываете как должен LP возобновлять работу после сбоя, он попытается продолжить с верха страниицы, где остановилась распечатка, или же при неудачной попытке сделать это, с начала запроса на распечатку.

Если программа интерфейса не функционирует и не может выявить когда сбой принтера был погашен, возобновление распечатки будет предприниматься каждые несколько минут. Вы можете заставить сервис распечатки LP немедленно сделать еще одну попытку, запросив команду enable.

Adding a Printer to be Used as a Login Terminal -
если принтер используется в качестве терминала регистрации, ответьте yes в формате конфигурации. Чтобы выполнить это с помощью команды, наберите:
	/usr/sbin/lpadmin -p printer-name -v path-name -l

path-name - это имя специального файла, представляющего порт принтера; -l указывает, что принтер должен запрещаться автоматически когда LP запускается, разрешая регистрацию пользователям. Принтер/терминал придется разрешать вручную, прежде чем он сможет использоваться для распечатки.

7.5.1.6. Нестандартные установки порта: Характеристики порта принтера

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

	 5 Printer Communication Setup Subtask
	 -----------------------------------------------------
	Printer: <id>
	Baud rate:   9600
	Parity:  none
	Stop bits:   l
	Character size:  8
	Hangup on loss of carrier:   yes
	XON/XOFF output control: yes
	Allow any character to restart output:   no
	Postprocess output:  no
	Map NL to CR-NL on output:   yes
	Map lower case to upper case on output:  no
	Carriage return delay:   none
	Newline delay:   none
	Backspace delay: none
	Formfeed delay:  none
	Vertical tab delat:  none
	Horizontal tab delay:expend
	Other options:

Стандартная программа использует команду stt для инициации порта принтера, давая минимально установку скорости передачи и некоторые другие характеристики по умолчанию.

Если ваш принтер требует других характеристик порта принтера, нежели те, что обрабатываются программой stty, вам придется настроить программу интерфейса.

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

	/usr/sbin/lpadmin -p printer-name -o
				"stty='stty-option-list'"

Двойные и одинарные кавычки нужны, если вы даете несколько элементов в stty-option-list.

7.5.1.7. Метод соединения: Устройство или адрес базовой сети

LP позволяет подсоединять ваш принтер несколькими способами. Самый прстой - это подсоединить принтер прямо к компьютеру. Однако, вы можете захотеть подсоединить их через сеть или через модем набора номеров, где они могут работать совместно с другими компьютерами или рабочими станциями.

Метод по умолчанию - это прямое подсоединение принтеров к компьютеру. Если для подсоединения своего принтера к компьютеру вы хотите использовать этот метод, в целом вам нужно сделать всего одну вещь: дать имя соединяющему порту. Есть два способа выполнить непрямое соединение: через модем набора номеров или через любой другой тип сети. LP использует утилиты базовой сети (BNU) для обработки обоих методов непрямых соединений.

7.5.1.8. Добавление прямо подсоединенного принтера

Чтобы добавить принтер, прямо подсоединенного к компьютеру, введите адрес устройства в формат или наберите: /usr/sbin/lpadmin -p printer-name -v path-name

path-name - это имя специального файла, представляющего адрес устройства. Обычно это бывает один из следующих файлов:

	/dev/tty00
	/dev/tty01
	/dev/lp

7.5.1.9. Добавление удаленного принтера

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

	/usr/sbin/lpadmin -p printer-name  -U dial-info

dial-info - это или номер телефона, который надо набрать, чтобы достичь модема принтера или имя системы, введенное в файл Systems базовой сети, для принтера.

Вы должны ввести команду lpadmin с параметром -U или -v. И, если вы не задаете параметр -l, LP предположит, что принтер не используется в качестве терминала регистрации.

7.5.2. Вывод на экран информации о конфигурации принтера

Чтобы вывести на экран информацию о конфигурации, или выберите опцию list из меню Priter Configuration, или используйте команду lpstat, чтобы проверить и конфигурацию и текущее состояние принтера. Короткая форма команды lpstat дает только состояние; вы можете использовать ее, чтобы посмотреть существует ли принтер, занят ли он, бездействует или запрещен. Длинная форма команды добавляет полную конфигурацию.

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

	lpstat -p printer-name
	lpstat -p printer-name -l

Вторая команда - это длинная форма команды. С помощью меню или команды вы увидите одну из следующих строк вывода:

	printer printer-name now printing request-id. enabled
						since date.
	printer printer-name is idle. enabled since date.
	printer printer-name disabled since date.
		reason
	printer printer-name waiting for auto-retry.
		reason

waiting для вывода auto-retry показывает, что сервис печати LP потерпел неудачу при попытке использовать принтер и, что сервис предпримет еще одну попытку.

При использовании длинной формы команды вы также увидите следующий вывод:

	Смонтированный формат:  form-name
	Типы содержимого:   content-type-list
	Тип принтера:   printer-type
	Описание:   comment
	Соединение: connection-info
	Интерфейс:  path-name
	При сбое:   alert-method
	После сбоя: fault-recovery
	Пользователи, которым 
	разрешен доступ:user-list
	Разрешенный формат: form-list
	Требуемая заглавная
	страница:
	Наборы символов:character-set-list
	Шаг по умолчанию:   integer CPI, integer
							LPI
	Размер страницы по
	умолчанию:  scaled-decimal-number
							wide,
							scaled-decimal-number
							long
	Установки порта по умолчанию:   stty-option-list

7.5.3. Модификация конфигурации принтера

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

При использовании меню на экран выводится следущее:

	5 Modify Printer <printer-id> Subtask
	--------------------------------------------------------
	configure  - Local Printer Configuration Subtask
	configure  - Remote Printer Configuration Subtask
	comm-setup - Local Printer Configuration Subtask
	charset- Software Selectable Character Set Aliasing
							Subtask
	printwheel - Removable Printwheel Naming Subtask
	access - Printer Access Setup Subtask

Опции configure и comm-setup дают те же характеристики, что описаны при добавлении принтера.

7.5.3.1. Наборы символов или печатные колеса

При добавлении принтера, вы можете указать какие печатные колеса, кассеты шрифтов или наборы символов доступны принтеру. Все они взаимно исключают друг друга; только что-то одно предполагается использовать в каждом принтере. С точки зрения LP, однако, печатные колеса и заменяемые касеты шрифтов обрабатываются одинаково, т.к. оба требуют вашего вмешательства и монтирования нового колеса или кассеты шрифтов. Эти варианты меню для модификации конфигурации принтера доступны только тогда, когда добавленный принтер имеет конфигурацию для других наборов символов или печатных колес. Если это не так, вы не сможете использовать эти варианты меню.

Предположив, что эти варианты действительны, когда вы просматриваете печатные колеса или наборы символов, имеющиеся в наличии, вы присваиваете им имена в целях удобства. lin Если принтер имеет монтируемые колеса, вам нужно просто перечислить их имена. Если принтер имеет выбираемые наборы символов, вам нужно перечислить их имена и преобразовать каждое в имя или число, которое уникально идентифицирует набор в базе данных Terminfo. Вы можете использовать следующую команду, чтобы определить имена наборов символов, перечисленных в базе данных Terminfo.

	TERM=priner-type tput csnm 0

printer-type - это имя типа интересующего вас принтера. Имя 0-го набора символа (набор, получаемый по умолчанию после инициации принтера) следует распечатать. Повторите команду, используя 1, 2, 3 и т.д. вместо 0, чтобы увидеть имена других наборов символов. В целом, имена Terminfo близко согласуются с именами, используемыми в документации пользователя принтера.

Примечание. Чтобы сервис LP мог найти имена в базе данных Terminfo, вы должны указать тип принтера.

Чтобы указать список имен печатных колес при добавлении принтера, используйте следующую команду:

	/usr/sbin/lpadmin -p printer-name  -S print-wheel-list

print-wheel-list - это список имен, отделенных запятой или пробелом. Если для отделения имен друг от друга вы используете пробелы, заключите весь список (но не -S) в кавычки.

Чтобы указать список имен наборов символов и преобразовать их в имена или числа Terminfo, используйте следующую команду:

	/usr/sbin/lpadmin -p printer-name  -S character-set-list

character-set-list - это также список имен, отделенных запятой или пробелом; однако, каждый элемент списка выглядит следующим образом:

	csN=character-set-name
	character-set-name1=character-set-name2

N в первой строке это число от 0 до 63, который идентифицирует номер набора символов в базе данных Terminfo. character-set-name1 во второй строке идентифицирует набор символов по его имени Terminfo. В обоих случаях имя справа от знака "-" - это имя, которое вы выбираете в качестве альтернативы набора символов.

Примечание. Вам не нужно обеспечивать список альтернативных имен наборов, если имена Terminfo являются адекватными. Вы можете обращаться к набору символов по номеру, имена Terminfo или по вашему альтернативному имени.

Чтобы определить синонимы, используйте следующую команду:

	/usr/sbin/lpadmin -p printer-name  -S "cs0=american, english=british"

Если вы не перечисляете печатные колеса или наборы символов, которые можно использовать с принтером, то LP предположит следующее: принтер, использующий печатные колеса, имеет только одно, фиксированное печатное колесо, и пользователь не может запросить специальное колесо при работе с принтером, а принтер имеющий выбираемые наборы символов, может взять любое имя csN или имя Terminfo, известное принтеру.

7.5.3.2. Указание доступа к форматам и пользователям

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

Если вы попытаетесь перечислить формат как разрешенный на принтере, но у принтера нет достаточных средств обработать этот формат, команда будет отвергнута.

При использовании меню просто введите имена форматов, которые или могут, или не могут использоваться на принтере. При использовании команды наберите следующее:

	/usr/sbin/lpadmin -p printer-name  -f allow:form-list
	/usr/sbin/lpadmin -p printer-name  -S deny:form-list

form-list - это список имен форматов, отделенных запятой или пробелом. Если вы используете пробелы для отделения имен друг от друга, заключите весь список (включая allow: или deny:, но не -f) в кавычки. Первая команда добавляет имена к списку разрешений и удаляет их из списка запрещений. Вторая команда добавляет имена в список запрещений и удаляет их из списка разрешений. Для возможности использования всех разрешенных форматов, укажите allow:all; чтобы запретить разрешение всех форматов, укажите deny:all.

Если вы не добавляете форматы в списки разрешений или запрещений, LP предположит, что принтер отказывается от использования всех форматов. В то же время, он разрешит монтировать любой формат. Она также даст предупреждающее сообщение, если формата не окажется в списке разрешений, или если вы пытаетесь смонтировать формат, который не согласуется с возможностями принтера.

7.5.3.3. Ограничение доступа пользователя

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

Здесь применяются те же правила. При помощи меню введите список зарегистрированных пользователей, которым разрешен или запрещен доступ. При использовании команды введите:

	/usr/sbin/lpadmin -p printer-name  -u allow:user-list
	/usr/sbin/lpadmin -p printer-name  -u deny:user-list

user-list - это список имен пользователей, отделенных запятой или пробелом. Если вы не добавляете имен пользователей в списки разрешений или запрещений, LP предполагает, что все могут использовать принтер.

7.5.3.4. Подзадание установки доступа к принтеру

Это программа, которую использует LP для управления принтером прежде, чем он будет использоваться, или после того, как будет выведен из нормального состояния. Она имеет четыре основных задания:

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

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

Чтобы идентифицировать настроенную программу интерфейса по имени, дайте имя принтера и полное имя программы интерфейса следующим образом:

	/usr/sbin/lpadmin -p printer-name -i interface

Чтобы идентифицировать настроенную программу интерфейса по ссылке к другому принтеру, дайте имена принтеров:

	/usr/sbin/lpadmin -p printer-name1P -e printer-name21

printer-name1 необходимо заменить на имя принтера, который вы добавляете;

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

	/usr/sbin/lpadmin -p printer-name -m model-name

7.5.4. Удаление принтера

Вы можете удалить принтер, если у него нет ожидающих распечатки запросов. Если есть ожидающие запросы, при использовании команд вам сначала нужно перевести их в другой принтер или класс принтеров с помощью команды lpmove или удалите их, используя команду cancel. Или вы можете переместить их с помощью меню, используя опцию requests из меню Printer Services.

Удаление последнего оставшегося принтера из класса автоматически удаляет и сам класс.

Если удаляемый принтер является также и пунктом назначения по умолчанию, у системы уже не будет пункта назначения.

Чтобы удалить принтер, используя меню, выберите remove из меню. Этот выбор выведет на экран формат, подсказывая идентифицировать те принтеры, кторые удаляются.

Чтобы удалить принтер по команде, введите:

	/usr/sbin/lpadmin -x printer-or-class-name

LP обеспечивает простой механизм присваивания приоритета, который могут использовать пользователи, чтобы подобрать положение запроса на распечатку в очереди. Каждому запросу можно дать уровень приоритета (число от 0 до 39, где 0 соответствует наивысшему уровню), это делает тот человек, который предписывает запрос. Так, если вы решили , что у вашего запроса слишком низкий приоритет, вы можете установить более высокий приоритет (с более низким значением), когда предписываете файл на распечатку.

Вы можете определить следующие характеристики этой схемы:

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

Вы, возможно, обнаружите, что хотите распечатать критический запрос раньше любых других, даже, если он должен иметь преимущественное право перед текущим запросом на распечатку. Вы можете дать LP "immediate", т.е. немедленная обработка запроса, а другой запрос поставить на "hold" (задержка).

7.6.1. Присваивание приоритетов запросам на распечатку с помощью меню

Выбор priorities из меню Printer Services дает следующий экран с меню:

	3   Assign Queue Priorities to Users
	----------------------------------------------
	default- Set System Default Priority
	list   - List Priority Limits for Users
	remove - Remove Users Priority Limit
	system - Set System Priority Limit
	users  - Set User(s) Priority Limit

default - устанавливает уровень приоритета на значение по умолчанию, равное 20;
list - это дает следующий экран:

	4 Priority Limits for Users
	------------------------------------------------
	Default priority is <default-priority>
	Priority limit for users not listed below is 0
	
		PriorityUsers
		p1  u1, u2, ...
		p2  u3
		.   .
		.   .
		.   .
		.   .
remove -
вы вводите список пользователей, чьи пределы приоритетов будут удаляться;
system -
устанавливает предел приоритетов для системы;
users -
вы вводите список пользователей, за которым следует новый предел приоритетов для этих пользователей.

7.6.2. Присваивание приоритетов с помощью команд shell

Формат команды:

	/usr/sbin/lpusers -q priority-level

где prioriry-level - число от 0 до 39, более низкие числа соответствуют более высокому приоритету.

Команда устанавливает предел по умолчанию, который применяется к тем пользователям, у которых нет конкретного предела.

Если вы не устанавливаете приоритет по умолчанию, LP будет использовать значение 20.

Эта команда соответствует функции меню Setting a Default Limit.

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

	/usr/sbin/lpusers -l

Эта команда соответствует функции меню Listing User's Priorities.

Чтобы восстановить предел приоритетов пользователя на значение по умолчанию, введите:

	/usr/sbin/lpusers -u user-name

Эта команда соответствует функции меню Removing User's Priorities.

Вы можете установить приоритет по умолчанию, который следует присвоить тем запросам, которым не предписан приоритет. Используйте команду:

	/usr/sbin/lpusers -d priority-level

Эта команда соответствует функции меню Setting the System Priority Level.

Значение по умолчанию применяется, когда у пользователя нет личного уровня приоритетов. Если приоритет по умолчанию превышает предел для пользователя, то вместо значения по умолчанию используется предел.

Функции Setting User's Priority Limits соответствует следующая команда:

	/usr/sbin/lpusers -d priority-level -u user-name

Вы можете установить предел для пользователей, перечислив их имена после параметра -u. Отделите несколько имен запятой или пробелом. Если для отделения имен друг от друга вы используете пробел, заключите весь список в кавычки.

Чтобы модифицировать предел приоритетов пользователя, повторно введите команду lpusers с новым пределом.

Воможно вам неожиданно потребуется остановить прием запросов для принтера или перевести запросы с одного принтера на другой. Вы можете управлять очередями запросов с помощью команды, или выбрав requests из меню Printer Services, которое имеет следующий вид:

	3  Manage Active Print Requests
	--------------------------------------------------
	cancel   - Cancel Print Requests
	hold - Place Pending Print Requests on Hold
	move - Move Print Requests to a New Destination
	release  - Release Hold Print Requests

Отмена запросов на распечатку

Вы можете отменить запросы для конкретных принтеров, выбрав функцию cancel, или введя имена этих принтеров.

Вы можете также отменить запросы, введя команду:

	lpstat -o

для идентификации запросов, и команду:

	cancel request-id

для отмены запроса с идентификатором request-id.

7.7.1. Задержка запроса

Любой запрос, который не завершил распечатку, можно задержать. Вы можете прекратить его распечатку, если он это делает в текущий момент, и удержать его от распечатки, пока вы ее не возобновите. Пользователь также может задержать свой запрос, а затем возобновить его распечатку, но не может возобновить тот запрос, который был задержан вами.

Для задержки запроса используется следующая команда:

	lp -i request-id -H hold

7.7.2. Освобождение задержанных запросов на распечатку

Освободить задержанные запросы можно с помощью меню или введя команду:

	lp -i request-id -H resume

После возобновления запрос будет продвигаться в очереди и наконец выполнит распечатку. Если он распечатывался, когда вы его задержали, он будет следующим запросом, который будет распечатываться. Нормально он начнет распечатку с самого начала, со страницы один, но вы можете запустить его распечатку и с другой страницы. Введите следующую команду, чтобы возобновить распечатку запроса с другой страницы:

	lp -i request-id -H resume -P starting-page-

Конечный дефис нужен для указания начальной страницы и всех последующих страниц.

Вы также можете запросить команду:

	lp -i request-id -H immediate

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

Примечание. Способность распечатывать подмножество страниц требует наличия фильтра, который может выполнить эту работу. Фильтр, используемый LP по умолчанию, этого не делает.

7.7.3. Перемещение запросов в новый пункт назначения

Если вам нужно переместить запросы с одного принтера или класса принтеров на другой, или выбирайте move из меню Print Requests, или вводите следующие команды:

	/usr/sbin/lpmove request-id printer-name
	/usr/sbin/lpmove printer-name1 printer-name2

В первой команде можно дать несколько идентификаторов запросов перед именем принтера.

Первая из команд перемещает перечисленные запросы в указанный принтер. Вторая - перемещает все запросы в текущей очереди для первого принтера во второй принтер. Когда используется вторая команда, LP не будет уже принимать запросы для первого принтера. Если вы выбираете move из меню, вы будете заполнять формат принтеров, из которых будут перемещаться запросы, идентификаторы запросов а также пункт назначения нового принтера.

7.7.3.1. Изменение приоритета запроса

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

Когда вы выбираете requests из меню, это дает вам подменю Request Priorities. Это меню позволяет изменять приоритет любого ожидающего запроса.

При использовании команды вы можете ввести следующую, изменяющую приоритет запроса:

	lp -i requestid -q new-priority-level

Вы можете изменить только один запрос одновременно, используя эту команду.

Если запрос уже распечатывается, вы не можете менять его приоритет. Эта возможность не доступна через структуру меню.

7.7.3.2. Перемещение запроса в голову очереди

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

Введите следующие команду, чтобы переместить запрос в голову очереди:

	lp -i request-id -H immediate

Только вы можете перемещать запрос таким образом; постоянные пользователи не могут использовать параметр -H immediate.

Если вы устанавливаете несколько запросов для немедленной распечатки, они будут распечатываться в обратном порядке, т.е. запрос перемещенный в голову очереди последним, будет распечатан первым. Для выполнения этого не существует какой-то специальной опции меню. Используя меню, вы можете выполнить следующие шаги, чтобы переместить запрос в голову очереди:

  1. Задержите все запросы, кроме того, который хотите переместить. Это автоматически переместит его в голову очереди.
  2. Удалите задержку всех других запросов.

7.8. Вывод на экран состояния сервиса принтера

Выбор Display Status из меню Printer Service дает:

	3 Display Status of Printer Services
	-------------------------------------------------------
	forms- Display Forms Status
	printers - Display Printers Status
	requests - Status of Print Requests
	wheels   - Status of Printwheels and Character Sets

Выбор каждой из опции соответственно дает:

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

7.9. Создание конфигурации линии связи с удаленными системами

Базовое меню, используемое для управления конфигурацией удаленного принтера, такое:

	3  Configure Connection to Other System
	-----------------------------------------------
	add - Add a New System Connection
	list- Display Available System Connections
	modify  - Modify System Connetcion
	remove  - Remove System Connection

7.9.1. Добавление связи с новой системой

Когда используется модем коммутируемой линии, следует соблюсти три условия:

  • принтер должен подсоединяться через коммутируемый модем;
  • модем коммутирования линии связи должен быть подсоединен к компьютеру;
  • утилиты базовой сети должны знать об этом модеме.

Из-за того, что программа cu обращается к принтеру так же, как это делает сервис принтера LP, вам следует установить файлы так же, как при подготовке обращения к принтеру программы cu. Команда cu не используется для обращения к принтерам, но может служить мерилом при установке файлов: если cu может обратиться к принтеру, LP также будет в состоянии обратиться к нему. Выбор add дает отображение на экране следующей формы, которую нужно заполнить:

	4 Add  a New System Connection
	---------------------------------------------
	System name:
	Scheduler type: s5 (or bad)
	
	Connection timeout: n
	
	Retry Period:

Принтеры, подсоединяемые через любой другой тип сети, требуют, чтобы "имя системы" было задано для каждого принтера. Это имя элемента в файле Systems или родственного с ним файла. Хотя принтер и не входит в систему UNIX, файл Systems все же можно использовать для записи метода доступа (конечно, никакой информации о регистрации даваться не будет).

Единственным принимаемым типом планироващика является s5 (UNIX System V) или bsd(SunOS). Планировщик s5 является планировщиком по умолчанию.

Период перерыва в линии связи выражается целым числом в минутах или буквой "n".

Период повторной попытки также задается числом в минутах или символом "n".

Другие опрерации установления дистанционной связи:

  • list отображает информацию об определении каждой из систем дистанционной связи;
  • modify дает отображение базового определения, позволяя отредактировать любое из относящихся к делу полей;
  • remove позволяет разъединять вас с любым из принтеров дистанционной связи.

7.10. Установка принтера (совместимость сверху вниз)

Выбор preSVR4 из меню Printer Service позволяет включить специальный набор прикладных программ с обратной совместимостью.

Когда вы делаете этот выбор, вам будет выдано предупреждение:

	3   Warning
	-------------------------------------------------
	Please note that the following menus are intended
	to provide backwards compatibility for preSVR4 add-on
	packages that depend on the existence of the preSVR4
	FACE user interface.
	
	It is recommended that you use the other selections
	provided in the Line Printer Configuration and
	Operation menu if your package is release 4.0
	compatible.

Если вы должны продолжить, то варианты меню preSVR4 для фильтров, форматов и печатных колес будут вам доступны.

7.11. Поиск неисправностей

Если вы испытываете трудности с пуском принтера в работу, далее приводится несколько соображений о том, что нужно предпринять.

  1. Нет вывода - ничего не распечатывается.

    Принтер бездействует; ничего не происходит. Сначала проверьте документацию, которая поставлена с принтером, на наличие какого-то средства самопроверки, которое вы можете вызвать; проверьте работает ли принтер. Подсоединен ли принтер к компьютеру? Разрешен ли принтер?

    Принтер должен быть "разрешен" двумя сппособами. Первое, принтер должен быть включен и готов к приему данных из компьютера. Второе, LP должен быть готов использовать принтер. Установите принтер. Если вы при выполнении этого получите сообщение об ошибках, следуйте тому, что предложено в сообщениях. Когда вы закончите установку принтера, введите или меню Daily Operations или введите команды:

    	/usr/sbin/accept printer-name
    	enable printer-name
    

    где printer-name - это имя, которое вы присваиваете принтеру для LP.

    Правильно ли установлена скорость передачи?

    Если скорость передачи (скорость с которой компьютер пересылает данные в принтер) не согласована с принтером, иногда ничего не будет распечатывается.

  2. Незаконный вывод.

    Принтер пытается что-то распечатать, но это не то, что вы ожидаете, и конечно не читаемо.

    Правильна ли скорость передачи?

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

    Прочитайте документацию, пришедшую с принтером, чтобы выяснить какова его скорость передачи. Она скорее всего должна устанавливаться на 9600 бод, дающие оптимальную продуктивность. Если она не установлена на 9600 бод, вы можете использовать LP, чтобы исправить скорость передачи (по умолчанию используется 9600). Если принтер подсоединен через параллельный порт, то значение скорости предачи роли не играет.

    Чтобы установить другую скорость передачи для использования LP, введите следующую команду:

    	/usr/sbin/lpadmin -p printer-name -o stty=baud-rate
    

    Правильна ли установка контроля четности?

    Некоторые принтеры используют контрольный разряд четности, чтобы гарантировать, что получаемые ими данные не были превращены в "мусор" в ходе передачи. Разряд четности можно декодировать несколькими способами, а компьютер и принтер должны договориться какой из них использовать. Иначе некоторые символы не будут распечатываться или будут заменены другими. Если ваш принтер подсоединен прямо к компьютеру с помощью довольно короткого кабеля, то не надо использовать разряд четности. Установить или изменить разряд четности можно с помощью следующих команд:

    	/usr/sbin/lpadmin -p printer-name -o stty=oddp
    	/usr/sbin/lpadmin -p printer-name -o stty=evenp
    	/usr/sbin/lpadmin -p printer-name -o stty=-parity
    

    Первая команда устанавливает формирование проверки на нечетность, вторая команда - проверки на четность. Последняя команда устанавливает значение по умолчанию - отсутствие проверки четности.

    Выберите команду, которая соответствует требованиям вашего принтера. Если вы устанвливаете скорость передачи, отличную от 9600, сочетайте установку скорости с установками проверки четности, как показано в следующей команде:

    	/usr/sbin/lpadmin -p printer-name -o "stty='evenp 1200'"
    

    Правильно ли установлены метки табуляции?

    Если принтер не ожидает получения символов табуляции, вывод может быть получен, но весь он будет расположен у правого поля.

  3. Законная распечатка, но неправильное расположение интервалов.

    Вывод весь налицо, и он читаемый, но в нем двойные пробелы, отсутствуют левые поля, распечатывается все сразу или зигзагообразно вниз по странице.

    Эти проблемы можно разрешить, осуществив настройку установок принтера (если возможно) или используя LP для согласования установок.

    Двойной пробел

    Нужно установить параметр -onclr или -tabs:

    	/usr/sbin/lpadmin -p printer-name -o stty=-onclr
    	/usr/sbin/lpadmin -p printer-name -o stty=-tabs
    

    Отсутствует левое поле/Одновременная распечатка

    Нужно установить параметр -tabs:

    	/usr/sbin/lpadmin -p printer-name -o stty=-tabs
    

    Зигзагообразное движение вниз по странице

    Нужно установить параметр -onclr:

    	/usr/sbin/lpadmin -p printer-name -o stty=-onclr
    

    Если надо решить сразу несколько проблем, можно указать все необходимые параметры в одной команде, например:

    	/usr/sbin/lpadmin -p printer-name -o "stty='-tabs
    		-onclr 2400'"
    
  4. Неправильный набор символов или шрифт.

    Если был выбран неправильный тип принтера, когда вы устанавливали принтер с помощью LP, в принтер можно отослать правильные управляющие символы. Результаты непредсказуемы и могут привести к исчезновению вывода или сделают его незаконным.

    Если вы не знаете, какой тип принтера надо задать, введите следующую команду:

    	TERM=printer-type tput longname
    

    Вывод этой команды появится на экране терминала и будет представлять собой короткое описание принтера, идентифицированного "printer-type". Используйте различные имена, пока не найдете то, которое идентифицирует ваш принтер. Список имен можно найти в каталоге /ust/lib/terminfo.

  5. Сбои выходного набора

    LP использует утилиты базовой сети для обработки принтеров с выходным набором. Если в наборе возникают сбои, и вы получаете предупреждение о сбоях в принтере, LP сообщает о той же ошибке.

  6. Бездействующие принтеры.

    Есть несколько причин бездействия принтеров, когда они разрешены, а запросы на распечатку все еще ждут в очереди:

    • запросы необходимо отфильтровать. Медленный фильтр в целях избежания перегрузки системы функционирует в единственном числе одновременно. До тех пор, пока запрос на распечатку не будет отфильтрован, он не будет распечатываться. Используйте следующую команду, чтобы посмотреть, что ожидающий запрос отфильтрован:
      	lpstat -o -l
      
    • сбой принтера. Автоматическое продолжение распечатки после выявления сбоя не происходит незамедлительно. LP подождет около пяти минут прежде чем предпринять новую попытку и будет делать это, пока распечатка успешно не завершится. Можно выполнить повторную попытку без промедления с помощью команды:
      	enable printer-name
      
    • принтер был занят или заняты все порты выходного набора. Также как в предыдущем случае LP ждет пять минут, прежде чем попытаться вновь получить доступ к принтеру. Если это невозможно сделать в течение одного-двух часов (в зависимости от причины), LP наконец предупреждает о возникновении ппроблемы. Можно выполнить повторную попытку без промедления с помощью команды:
      	enable printer-name
      
    • потерян дочерний процесс. Если процесс UNIX, управляющий принтером, остановлен (системой UNIX в периоды крайней загруженности или администратором), LP может не осознавать этого в течение несколько минут. Запрещение принтера и последующее его разрешение заставит LP проверить наличие управляющего процесса и вновь запустить его. Убедитесь, что принтер действительно бездействует, т.к. запрещение принтера останавливает его работу в непредсказуемом месте распечатки. Хотя запрос не будет потерян, его придется перепечатать полностью.
      	disable printer-name
      	enable printer-name
      

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

      	lpstat -o -l
      	lp -i request-id -H hold
      	lp -i request-id -H resume
      

      Первая команда используется для просмотра очереди запросов.

  7. Очистка протокола запроса.

    Каталоги /usr/lib/lp/temp и /usr/lib/lp/requests содержат файлы, которые описывают каждый запрос, который был предписан для распечатки. Каждый запрос имеет два файла, по одному в каждом каталоге, которые содержат информацию об этом запросе. Файл запросов в каталоге /usr/lib/lp/temp защищен от доступа любого, за исключением пользователя, который выдал этот запрос, а файл в /usr/lib/lp/requests защищен даже от пользователя, выдавшего запрос.

    Файлы остаются в каталогах только до тех пор, пока запрос находится в очереди. После завершения выполнения запроса информация в файле объединяется и добавляется в файл /usr/lib/lp/requests.

    Протокол запросов имеет простую структуру, которая облегчает извлечение данных. Запросы перечисляются в том порядке, в котором они распечатываются и отделяются друг от друга строками, содержащими id запросов. Каждая строка ниже отделяющей строки помечается одной буквой, которая идентифицирует тип информации, содержащийся в ней. В табл. 1 приводится детальное описание значений каждой буквы.

Таблица 1

Буква Содержимое строки
= Это отделяющая строка, содержащая id запроса id пользователя и групповой id пользователя, полное количество байтов в исходных (неотфильтрованных) файлах, а также время постановки запроса в очередь. Эти элементы отделяются друг от друга запятыми и расположены следующим образом: id пользователя, групповой id, размер файла и предваряются словом uid, gid и size соответственно
C Количество распечатываемых копий
D Пункт назначения принтера или класса принтеров или слово any
F Имя распечатываемого файла. Эта строка повторя- ется для каждого распечатываемого файла
f Имя используемого формата
H Тип специальной обработки, называемой по буквам (resume, hold, immediate).
N Тип предупреждения, используемый, когда запрос на распечатку успешно выполнен. Это буква M, если пользователь уведомляется почтой, или W - если пользователь уведомляется сообщением на терминале
O Параметр -o
p Приоритет запроса
P Список распечатываемых страниц
r Присутствует, если пользователь запросил команду LP с параметром -r
S Используемый набор символов
s Выход запроса в виде сочетания индивидуальных битов, выраженных в шестнадцатиричном виде. Несколько битов используется программой Spooler. Наиболее важные биты имеют значение:
0x0004 - медленная фильтрация успешно завершена
0x0010 - распечатка завершена успешно
0x0040 - запрос отменен
0x0100 - запрос не отфильтрован или не распечатан
T Заголовок размещен на заглавной странице
t Тип содержимого, находящегося в файла(ах)
U Имя пользователя, выдавшего запрос на распечатку
X Медленный фильтр, используемый для запроса
Y Список специальных режимов, задаваемых фильтрам, используемым для распечатки запроса
y Быстрый фильтр, используемый для запроса
z Принтер, используемый для распечатки запроса. Он будет отличаться от пункта назначения, если запрос ставится в очередь на любой принтер или класс принтеров, или если запрос был перемещен в другой пункт назначения администратором LP

Хотя LP отвечает большей части требований к распечатке, существуют принтеры, которые не совсем соответствуют способу обработки принтеров сервисом LP.

Вы можете оосуществить настройку LP несколькими способами. В этом подразделе рассказывается как вы можете:

  • настроить характеристики портов принтеров;
  • настроить базу данных Terminfo;
  • написать программу интерфейса.

7.12.1. Как LP обрабатывает файл запроса

Каждый запрос отсылается в spooling daemon, который следит за всеми запросами. Следящий процесс (демон) создается, когда вы запускаете сервис принтера LP. Этот процесс системы UNIX также отвечает за слежением за состоянием принтеров и медленных фильтров; когда принтер заканчивает распечатку файла пользователя, демон запустит на нем распечатку другого запроса, если он есть в очереди.

Вы можете настроить сервис принтера, если настроите или замените некоторые из элементов процесса.

  1. Для большей части принтеров вам нужно изменить конфигурацию, хранящуюся на диске. Некоторые из наиболее зависимых от конфигурации принтера данные - это характеристики порта принтера: скорость передачи, контроль четности и т.д.
  2. Для принтеров, которые не представлены в базе данных Terminfo, вы можете добавить новый элемент, который описывает возможности принтера. Эта база данных позволяет: просматривать запросы, чтобы гарантировать, что те, которые приняты к распечатке могут быть обработаны требуемым принтером; устанавливать принтеры в состояние, когда у него будет готовность распечатать запрос. Например, если база данных Terminfo показывает, что принтер не в состоянии установить длину страницы, запрошенную пользователем, следящий процесс отвергнет этот запрос. С другой стороны, если она показывает, что принтер может это сделать, то та же самая информация будет использована программой интерфейса для инициации принтера.
  3. Для особенно трудных в работе принтеров или когда вы хотите добавить средства, не обеспеченные поставленным сервисом LP, вы можете изменить стандартную программу интерфейса. Эта программа отвечает за управление принтером: она распечатывает заглавную страницу, инициирует принтер, а также вызывает фильтр для отсылки копий файлов пользователя на принтер.
  4. Чтобы обеспечить связь прикладных программ, используемых в вашей системе, и принтеров, вы можете добавить быстрые и медленные фильтры. Каждый тип фильтра может преобразовывать один набор последовательности переключения кода в другой, а также может обеспечить специальную установку, прервав режимы распечатки, запрошенные пользователем. Медленные фильтры функционируют отдельно с помощью демона, чтобы избежать ограничения принтера. Быстрые фильтры функционируют так, что их вывод идет прямо на принтер, таким образом, они могут управлять работой принтера.

7.12.2. Настройка характеристик порта принтера

Вам следует удостовериться, что характеристики порта принтера, установленные LP, согласуются с установками линии связи принтера. Стандартные установки порта были созданы для работы с типичными файлами системы UNIX и многими принтерами, но они не будут работать со всеми файлами и принтерами. Это не является шагом настройки, т.к. стандартным свойством LP является предоставление вам возможности указать установки порта для каждого принтера. Однако, это является важным шагом в подготовке вашего принтера к работе с LP.

Когда вы добавляете новый принтер, прочтите документацию к нему, чтобы иметь представление о том, что он ожидает от главной машины. Затем изучите команду stty. Она сводит воедино различные характеристики, которые невозможно установить на терминале или в порт принтера.

В табл. 2 перечислены параметры команды stty, которые имеют значение для принтеров.

Таблица 2

Параметр stty Значение
evenp Отсылает проверку на четность в 8-м разряде
oddp Отсылает проверку на нечетность в 8-м разряде
-parity Не формирует разряда четности, посылает все 8 разрядов без изменений
110 - 38400 Устанавливает скорость в линии передачи на эту скорость передачи
ixon Разрешает управление потоками XON/XOFF (также известное как START/STOP или DC1/DC3)
-ixon Отключает управление потоками XON/XOFF
-opost Не выполняет "постобработку вывода"
opost Выполняет "постобработку вывода" согласно установкам
onclr Вставляет символ "возврат каретки" перед любым символом "перевод строки"
-onclr Не вставляет символ "возврат каретки"
ocrnl Изменяет символ "возврат каретки" на символ "перевод строки"
-ocrnl Не изменяет символ "возврат каретки" на символ "перевод строки"
-tabs Заменяет метки табуляции на эквивалентное число пробелов
tabs Не заменяет метки табуляции на пробелы

7.12.3. Настройка базы данных Terminfo

LP полагается на страндартный интерфейс и базу данных Terminfo при иницииации каждого принтера и установке выбранного размера страницы, шага расположения символов, шага строки и набора символов. Обычно бывает достаточно сделать правильный ввод элементов в базу данных Terminfo, чтобы добавить новый элемент к LP . Несколько элементов принтеров AT&T поставляются вместе с элементами Treminfo в пакете LP.

Каждый принтер идентифицируется в базе данных Terminfo по короткому имени; этот вид имени идентичен тому, которое используется для установки пременной командного файла TERM. Например, принтер AT&T модель 455 идентифицируется по имени 455.

Если вы не можете найти элемент Terminfo для вашего принтера, вам надо его добавить. Если вы этого не сделаете, вы сможете использовать принтер с LP, но у вас не будет возможности получать автоматический выбор размера страницы, шага и набора символов, и у вас могут возникать трудности с установкой принтера в правильные режимы для каждого запроса на распечатку. Другим вариантом, которым можно воспользоваться вместо обновления элемента Terminfo, это настроить программу интерфейса, используемую с принтером.

В табл. 3 пречислены элементы, которые нужно определить, прежде чем добавить новый принтер в базу Terminfo.

Таблица 3

Элемент Terminfo Значение
daisy Принтеру нужен оператор, чтобы изменить набор символов
bufsz Число байтов, помещаемых в буфер перед распечаткой
* cols Число колонок в строке
* it Метки табуляции, используемые вместо пробелов
* lines Число строк на странице
orc Разрешающая способность по горизонтали в единицах на символ
orchi Разрешающая способность по горизонтали в единицах на дюйм
orl Разрешающая способность по вертикали в единицах на символ
orvi Разрешающая способность по вертикали в единицах на дюйм
cps Средняя скорость распечатки в символах
* cr Возврат каретки
cpi Изменение числа символов на дюйм
lpi Изменение числа строк на дюйм
chr Изменение разрешающей способности по горизонтали
cvr Изменение разрешающей способности по вертикали
csnm Список имен набора символов
mgс Очистка всех полей (верхних, нижних и боковых)
* hpa Абсолютная позиция по горизонтали
* cud1 На одну строку вниз
* cuf1 Каретку вправо
swidm Разрешение печати удвоенной ширины
rwidm Запрещение печати удвоенной ширины
* ff Выдача страницы
* is1 Строка инициации принтера
* is2 Строка инициации принтера
* is3 Строка инициации принтера
* if Имя файла инициации
* iprog Полное имя программы инициации
* cud Перемещение кареткии на # строки вниз
* cuf Перемещение кареткии на # строки вправо
* rep Повтор символа # раз
* vpa Абсолютная позиция по вертикали
scs Выбор набора символов
smgb Установка нижних полей на текущей строке
smgbp Установка нижних полей
smgl Установка левых полей в текущей колонке
smglp Установка полей слева
smgr Установка правых полей в текущей колонке
smgrp Установка полей справа
smgt Установка верхних полей на текущей строке
smgtp Установка верхних полей
scsd Запуск определения набора символов
* ht Метка табуляции для следующих 8 пробелов

Те элементы, которые помечены звездочкой (*), имеются во всех версиях UNIX System V. Остальные можно добавить только, если вы используете систему UNIX System V версии 3.2 или более поздние.

После того как вы создали новый элемент, вам нужно скомпилировать его в базу данных, используя программу tic. Просто введите следующую команду:

	tic filename

где filename - это имя файла, содержащего элемент Terminfo для нового принтера.

Примечание. Сервис принтера LP работает наиболее эффективно, если кэширует информацию из базы данных Terminfo. Если вы добавляете или удаляете элементы из Terminfo или изменяете значения, управляющие установками шагов, шириной и длиной страницы вам следует перезапустить LP, чтобы он использовал новую информацию.

7.12.4. Как написать программу интерфейса

Если у вас есть требования к печати, которые не поддерживаются стандартной программой интерфейса, вы можете создать свою собственную программу интерфейса, взяв стандартную программу и настроив ее в соответствии со своими требованиями. Копия программы находится в файле: /usr/lib/lp/model/standard

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

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

  • инициирует порт принтера при необходимости, используя команду stty;
  • инициирует физический принтер. Программа интерфейса использует Terminfo и переменную командного файла TERM, чтобы получить управляющие последовательности для выполнения этой задачи;
  • при необходимости распечатывает заглавную страницу;
  • распечатывает правильное количество копий содержимого запроса.

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

7.12.5. Как использовать программу интерфейса

Программа интерфейса вызывается следующим образом:

	/usr/sbin/lp/admins/lp/interface/P id user title copies \
	options file1 file2 ...

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

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

Параметр options cтандартной программы интерфейса может принимать следующий значения:

nobanner -
используется, чтобыпропуститьзаглавнную страницу;
nofilebreak -
используется, чтобы пропустить прерывание страницы между отдельнными файлами данных;
lpi=decimal-number2 -
устанавливают параметры распечатки: "decimal-number1" колонок на дюйм и "decimal-number2" строк на дюйм соответственно. Слова pica, elite и compressed являются приемлемыми заменами decimal-number1 и означают 10 колонок на дюйм, 12 колонок на дюйм и максимально возможное число колонок на дюйм соответственно;
width=decimal-number2 -
устанавливают соответственно длину и ширину страниц для распечатки;
'stty-option-list' -
используется для изменения конфигурации порта, которая устанавливается по умолчанию.

Дополнительная информация о конфигурации принтера передается программе интерфейса в переменных командного файла:

TERM=printer-type -
указывает тип принтера. Это значение используется для получения информации о возможностях принтера из базы данной Terminfo;
FILTER='pipeline' -
указывает фильтр, используемый для отсылки содержимого запроса на принтер;
CHARSET=character-set -
указывает набор символов, используемый при распечатке содержимого запроса.

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

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

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

	## Initialize the printer port

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

	stty mode options 0<&1

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

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

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

	# Here you may want to add other port
	# initialization code

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

	## Print the banner page

Некоторые прикладные приложения программы, функционирующие с конкретными принтерами, могут потребовать отключения прерывания страницы. Если вы должны отключить прерывание страницы, вы можете модифицировать стандартную программу интерфейса (/usr/lib/lp/model/standard) на строке 192, изменив "no" на "yes".

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

После завершения распечатки ваша программа интерфейса должна выйти с кодом, который сообщает о состоянии выполнения заданий по распечатке. Этот код интерпретируется сервисом LP следующим образом:

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

Как показывает эта таблица, одним из способов извещения администратора о сбое принтера является возврат кода 129 программой интерфейса. После устранения сбоя LP вновь распечатывает запрос с самого начала. Способом получения информации о сбое без повторной распечатки всего запроса является отсылка программой интерфейса сообщения сервису LP и ожидание его устранения. После устранения сбоя программа интерфейса может возобновить распечатку файла пользователя. После окончания распечатки программа интерфейса может возвратить нулевой код, будто бы сбоя и не возникало.

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

	# Here's where we set up the $LPTELL programm
	# to capture fault messages.
	# Here's where we print the file.

При использовании специального кода возврата 129 или программы lp.tell, уже нет необходимости программе интерфейса запрещать сам принтер. Ваша программа может запретить принтер прямо, но это отменит механизм предупреждения о сбоях. Они отсылаются только, если LP выявляет, что принтер дал сбой, а специальный код и программа lp.tell являются главными инструментами его выявления.

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

Назад       Содержание       Вперёд