для моделиро- вания функций реального tty. Пользователи сетевых продуктов должны уже быть знакомы с псевдо-ttys, так как они являются устройствами, используемыми для подключения к системе на удаленных машинах. Псевдо-tty представляется двумя программными устройствами, которые появля- ются в листинге /dev как "pty" и "ttyp", за каждым из которых следует число. Первый называется "главным" tty, а последний - "подчиненным". Они моделируют функциональный tty. После установки система допускает максимум 16 экранов и только 8 псевдо-ttys создаются во время процедуры установки. Вы можете создать большее количество псевдо-ttys и в результате получить больше экранов в системе с программой на рисунке 14-1. - 14-21а - Этот предел псевдо-ttys, которые могут использоваться, контро- лируется конфигурируемым параметром NSPTTYS, который определяет число псевдо-ttys, распознаваемых системой (по умолчанию во время установки задается 16). Допускается максимум 32 псев- до-ttys. Если вы планируете использовать более 16 псевдо-ttys, вы должны увеличить этот параметр в добавление к созданию до- полнительных псевдо-ttys. Заметим, что строка "для х - 14-22 - в 8 9 10" на рисунке 14-1 расширяется до 23, что означает, что создается 16 дополнительных псевдо-ttys ((0 - 7) уже имеются). Следует укоротить эту строку, если вам не нужно так много псев- до-ttys. Вы можете также расширить ее до 31, если вам нужен ма- ксимум 32. +--------------------------------------------------------------+ |# тип '1 /dev/ptyp*' вы получите несколько линий, аналогичных:| |# crw----------- 1 бин терминал 59, 26 мая 08:21 /dev/ptyp0 | |# | |# установите переменную "главный мастер" (ниже), равную приво-| |# димому главному номеру | |major_master=59 | |# тип '1 /dev/ptyp*' вы получите несколько линий, аналогичных:| |# crw----------- 1 бин терминал 58, 26 мая 08:21 /dev/ttyp0 | |# | |# установите переменную "главный мастер" (ниже), равную приво-| |# димому главному номеру | |major_slave=58 | |for x in 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |do | | # make master (выполнение "мастера) | | /etc/mknod /dev/ptyp$x c $major_master $x | | chown bin /dev/ptyp$x | | chgrp terminal /dev/ptyp$x | | chmod 600 /dev/ptyp$x | | | | # make slave (выполнение "раба") | | /etc/mknod /dev/ptyp$x c $major_slave $x | | chown bin /dev/ptyp$x | | chgrp terminal /dev/ptyp$x | | chmod 600 /dev/ptyp$x | |done | +--------------------------------------------------------------+ Рис. 14-1. Процедура оболочки maketyps. Выполните эти шаги для конфигурации дополнительных экранов 1. Конфигурируйте ваше ядро для обеспечения дополнительных псевдо-ttys. Читайте раздел "Перевыделение ресурсов ядра при конфигурации" в главе "Настройка производительности системы" данного руководства для получения инструкций по - 14-22а - выполнению configure(ADM). Выберите категорию 3, Файлы, i -узлы и файловые системы и установите параметр NSPTTYS в требуемое значение. Выполните инструкции по перередактиро- ванию ядра перед продолжением работы. 2. Далее копируйте процедуру на рисунке 14-1 в файл, называе- мый "makeptys". Чтобы сделать эту процедуру оболочки вы- полняемой, введите следующую команду: chmod 744 makeptys - 14-23 - 3. Для выполнения этой процедуры оболочки убедитесь, что вы подключены к системе как root и выполните процедуру обо- лочки следующим образом: ./makeptys 4. После добавления устройств вы должны конфигурировать сис- тему для запуска процесса getty на каждом псевдо-tty. Это выполняется добавлением элементов в файлы /etc/inittab и / etc/conf/cf.d/init.base. Элементы, уже представленные для первых восьми псевдо-ttys выглядят следующим образом: p0:2:respawn:/etc/getty ttyp0 m p1:2:respawn:/etc/getty ttyp1 m p2:2:respawn:/etc/getty ttyp2 m p3:2:respawn:/etc/getty ttyp3 m p4:2:respawn:/etc/getty ttyp4 m p5:2:respawn:/etc/getty ttyp5 m p6:2:respawn:/etc/getty ttyp6 m p7:2:respawn:/etc/getty ttyp7 m Примечание. Первые 8 псевдо-ttys могут сказать "из" вместо "перепорожде- ния". (Мышь требует, чтобы псевдо-ttys были замаскированы). Вы можете изменить их на "перепорождение", открыв каждое из этих устройств, как в следующем примере: enable p0 При этом открывается псевдо-tty /dev/ttyp0. (Не открывайте эти псевдо-ttys, если вы уже используете их для мыши). Вы можете копировать и далее модифицировать эти элементы для дополнительных устройств. Убедитесь, что вы модифици- ровали оба файла. Например, если вы хотите добавить 8 до- полнительных псевдо-ttys, вам следует добавить следующие строки в оба файла: p8:2:respawn:/etc/getty ttyp8 m p9:2:respawn:/etc/getty ttyp9 m p10:2:respawn:/etc/getty ttyp10 m p11:2:respawn:/etc/getty ttyp11 m p12:2:respawn:/etc/getty ttyp12 m p13:2:respawn:/etc/getty ttyp13 m p14:2:respawn:/etc/getty ttyp14 m p15:2:respawn:/etc/getty ttyp15 m - 14-24 - 5. Далее введите следующую команду:  /tcb/lib/ttys_update Это гарантирует, что ваши добавления распознаются механиз- мами безопасности системы. Добавление больших возможностей mscreen в систему увеличи- вает производительность пользователей. Однако чрезмерное ис- пользование может снизить производительность системы. Система с десятью пользователями, каждый из которых использует два экра- на, может привести к тому, что производительность системы будет такой же, как в случае двадцати пользователей. Следует иметь производительность в виду при решении вопроса о том, как много mscreen следует использовать в системе, и кто будет иметь воз- можность использовать их. Пока никакой терминал не содержит достаточно экранной па- мяти для сохранения информации, отображаемой при использовании всех двадцати login, которые обслуживаются средствами mscreen, любой терминал позволяет пользователю выполнить переключение между двадцатью экранами, при условии, что клавиатура имеет достаточно дополнительных клавиш для использования при переклю- чении экранов. Однако пользователь вероятно не будет считать полезным использование многих экранов без набора страниц экран- ной памяти. Неудобно, например, переполучать экран терминала каждый раз при переключении экранов, когда используется крупно- форматная таблица на одном экране и Vi на другом. Большая часть людей, которые используют терминалы с минимальной памятью экра- на предпочтут слои оболочки shl(C) mscreen для множества сессий login. Дополнительная информация по shl содержится в документе User's Reference.  Поиск неисправностей В отличии от многих утилит сложные средства mscreen требу- ют ряда условий для правильного функционирования. Следуя этим предположениям вам следует обойти ряд наиболее общих ошибок, которые делают новые пользователи mscreen. При подготовке к использованию mscreen убедитесь, что тер- минал будет работать с программой. Определите, сколько - 14-24а - имеется экранной памяти, обратившись к руководству по термина- лу. Утилита mscreen использует файл /etc/mscreencap для опреде- ления того, как изменить образы экрана для отдельного термина- ла. Будучи заполнен файл /etc/mscreencap обеспечивается лишь для ряда терминалов. Не следует говорить, что другие терминалы не работают с mscreen, они делают это. Вам следует лишь конфи- гурировать файл /etc/mscreencap перед использованием терминала. Если вы выполняете mscreen для терминала, который не имеет эле- ментов в файле /etc/mscreencap, то mscreen завершится аварийно. Если вы уверены, что терминал будет работать с mscreen и у вас есть работающая процедура mscreencap, но процедура mscreen все же завершается аварийно, проверьте следующие проблемы: - 14-25 - - создайте псевдо-ttys. Вам может потребоваться создать большее количество псевдо-ttys, если текущие псевдо-ttys уже используются. Используйте процедуру оболочки с рисунка 14-1 для создания большего количества псевдо-ttys. - проверьте переключение. Убедитесь, что /etc/mscreencap для терминала корректен. Используйте один из примеров в /etc/mscreencap для проверки способа, которым выходная последовательность функциональных клавиш отображается на отдельную команду mscreen. Подключитесь к системе: вы должны подключиться к системе отдельно для каждого экрана, который вы будете использовать. - уничтожьте процессы mscreen. Если вы тестируете элемент mscreen и имеете неисправность на экранах, то следует вы- полнить следующее: 1. Проверьте выполняющиеся процессы: Ъ2ps -uusername 2. Уничтожьте все процессы Ъ2mscreen: Ъ2kill -g process_numbers  Усовершенствованное использование Многие пользователи считают, что mscreen представляет дос- таточные средства. Для усовершенствованных пользователей mscreen или кого-либо заинтересованного в более подробном изу- чении mscreen и операционной системы имеется несколько советов по использованию и расширению mscreen. Страница руководства по mscreen(M) предполагает средства автоматического вызова mscreen из файла .login оболочки С. Кро- ме автоматического вызова mscreen информация на рисунке 14-2 описывает три полнофункциональных mscreen для WYSE 60, а также добавляет ряд удобных средств для пользователя mscreen. Рисунок 14-3 представляет тот же самый материал для файла .profile обо- лочки Bourne. Заметим, что эти примеры спроектированы для до- бавления в конец файла .login или .profile и замещают любую су- ществующую информацию о tset. - 14-26 - +--------------------------------------------------------------+ |# Example material for the end of a C-Shell .login file. | |# If logging in via pseudo-tty, surpress terminal | |# initialization | |set ttyname='tty' | |(Пример для конца файла .login оболочки С. | | Если подключение к системе происходит через псевдо-tty, | | прекратите инициализацию терминала. Установите ttyname='tty')| |# Set init to null, iitially.| | |set init=' ' | |(Установите init в нулевое значение, первоначально. | | Установите init=' ') | |set noglob | |# Reset init to the valur "-I" when logging in on a pseudo-tty| |# to surpress the tset terminal initializations string. | |if ( 'expr $ttyname : "/dev/ttyp"' > 0 ) set init = "-I" | |set term = ('tset -m ansi:ansi -m wy60 -m:?wy60 -r -S -Q | |$init') | |setenvTern $term[1] | |setenvTERMCAP $term[2] #terminal data base | |unset noglob term | |# Put WYSE 60 in ECON-80 mode during initial log in process. | |(Установите WYSE 60 в режим ECON-80 во время процедуры | |начального подключения к системе) | |if ( "$init" !="-I" && "STERM" == "wy60" ) /bin/echo | |"\033eG\c" | |# Set the prompt to indicate the tty number of the current | |# mscreen and command. | |(Установите подсказку, чтобы указать номер tty текущего | |mscreen и команду). | |set prompt = "'expr $ttynamt : '/dev/)' ` % " | |# Release the local variable used. | |(Освободите локальные используемые переменные). | |unset ttyname init | |# Run mscreen and logout if the 'stop' key (defined as S-F9 in| |# the default /etc/mscreencap for wy60) is pressed. This | |# string is described in the mscreen(M) manual pages. | |(Выполните mscreen и журнал, если клавиша "стоп" (определенная| |как S-F9 в принимаемом по умолчанию файле /etc/mscreencap для| |wy60 нажата. Эта строка описана в руководстве по mscreen(M)). | |mscreen -n 3 | |if ($status == 0) logout | +--------------------------------------------------------------+ Рис. 14-2. Процедура .login. - 14-27 - +--------------------------------------------------------------+ | # | | # Example material for the end of a Bourne shell .profile | | # file | | (Пример для конца файла .profile оболочки Bourne) | | | | ttyname='tty' | | | | init="' | | | | if [ `expr $ttyname : "/dev/ttyp"` -gt "0" ] | | then | | init="-I" | | fi | | eval `tset -m ansi:ansi -m wy60:wy60 -m :?wy60 -r -s -q | | $init` | | export PATH | | | | if ["$init" = "-I" -a "STERM" = "wy60" ] | | them | | /bin/echo "\033eg\c" | | fi | | | | PSI=`expr $ttyname : '/dev')'` $ " | | | | unset ttyname init | | | | mscreen -n 3 | | if [ "$?" = "0" ] | | then | | exit | | fi | +--------------------------------------------------------------+ Рис. 14-3. Процедура файла .profile. Многие элементы termcap (включая wy60) чистят буфера экра- на (которые mscreen использует при запоминании содержимого мно- жества экранов) как части строки инициализации. На рисунках 2 и 3 tset(С) посылает строку инициализации только во время первой процедуры .login. При подключении к - 14-27а - псевдо-ttys tset вызывается с флагом -I. Это делается добавле- нием переменной "init" в строку tset. Первый раз, когда выпол- няется tset "init" имеет значение, равное "", не добавляя ниче- го к команде tset. При выполнении команды tset во время первой процедуры login на экране отображается строка "\033tG\c". Эта последовательность выхода изменяет параметры установки COLUMNS в WYSE60 на режим ECON-80. Комбинация этих параметров установки освобождает достаточное количество экранной памяти для исполь- зования тремя экранами. В качестве дополнительного удобства подсказка пользователя устанавливается для отображения номера вспомогательного псевдо-tty, что позволяет пользователю легко отслеживать содержимое используемых экранов. Если вы не используете терминал WYSE60, вы можете задать подсказку для указания текущего экрана и вызвать mscreen авто- матически во время проверки кода возврата оболочки, как это по- казано на рисунках 14-2 и 14-3. - 14-28 -  ИСПОЛЬЗОВАНИЕ МОДЕМА В СИСТЕМЕ Данный раздел объясняет, как соединять и использовать мо- дем в системе UNIX.  Последовательные линии Операционная система обеспечивает управление модемом для последовательных портов. Таблица 14.1 содержит примеры имен ус- тройств с управлением модемом и без такого управления. Таблица 14.1 Последовательные линии +-----------+-------------------------------------------------+ | Устройство| Функция | +-----------+-------------------------------------------------+ | /dev/tty1a| основной последовательный адаптер без управления | | | модемом | | /dev/tty1A| основной последовательный адаптер с управлением | | | модемом | | /dev/tty2a| альтернативный последовательный адаптер без | | | управления модемом | | /dev/tty2A| альтернативный последовательный адаптер с  | | | управлением модемом | +-----------+-------------------------------------------------+ /dev/tty1a и /dev/tty1A относятся к одному и тому же пос- ледовательному порту (аналогично /dev/tty2a и /dev/tty2A). Опе- рационная система использует в каждом случае различные подпрог- раммы драйверов устройств. Нельзя пытаться использовать одновременно порты управления с модемом и без модема или же вы увидите следующее сообщение: cannot open: device busy (нельзя открыть: устройство занято) Для систем, включающих многопортовые последовательные пла- ты, устройства /dev/tty[1,2] [а-m] относятся к использованию без управления модемом, а /dev/tty[1,2] [А-М] относятся к ис- пользованию с управлением модемом. - 14-28 -  Выходной набор от вашего компьютера Утилиты up(C) и uucp(C) используются для вызова удаленных систем и передачи данных в системах UNIX. Файл /usr/lib/uucp/Devices (называемый Devices) содержит информацию, используемую этими программами для определения характеристик отдельной последовательной линии. Файл Devices содержит линии, которые задают устройство для линии, устройство вызова, связанное с линией, и скорости пере- дачи, которые будут использоваться UUCP. (Устройства управления модемом следует использовать с линиями, связанными с модемами). - 14-29 - Использование программ вызова по номеру Для вызова по номеру и cu и UUCP используют общий набор наборщиков номеров, которые могут быть независимыми двоичными кодами (программами) аналогично /usr/lib/uucp/dialHA12, или элементами файла /usr/lib/uucp/Dialers. (Дополнительная инфор- мация об элементах файла Dialers содержится в главе "Построение удаленной сети с UUCP" данного руководства). Исходные данные для набора программ вызова по номеру и формирования файла для перекомпиляции исходной программы вклю- чены в оглавление /usr/lib/uucp. Если у вас имеется какой-либо другой вид модема, то вы можете модифицировать любые исходные файлы и создать вашу собственную программу вызова по номеру. Заметим, что вы должны располагать системой разработки UNIX, установленной для компиляции программы. Для получения новой программы вызова по номеру выполните следующие шаги: 1. Измените оглавление на /usr/lib/uucp следующей командой: cd /usr/lib/uucp 2. Редактируйте файл makefile в оглавлении /usr/lib/uucp и найдите строку, которая читает: EXES = dialHA12 dialHA24 dialTBIT dialVA3450 и добавляет имя программы вызова по номеру, которую вы хо- тите использовать. После того, как это сделано, выйдите из файла, сохранив сделанные изменения. 3. Далее введите команду: make для вашей подсказки оболочки и нажмите <Возврат>. 4. После завершения выполнения команды make вы получаете но- вую программу вызова по номеру. Это может использоваться в пятом поле элемента в поле Devices. - 14-30 -  Установка модема, обеспечивающего пересылку данных абоненту сети Примечание Внутренние модемы не рекомендуются. Это происходит из-за то- го, что для таких модемов трудно проводить отладку. Иногда возникают конфликты по прерываниям, которые нельзя легко раз- решить. Когда вы присоединяете модем или любое другое устройство, убедитесь, что последовательные линии, присоединенные к компь- ютеру, не находятся в подвешенном состоянии. Свободная линия, присоединенная к компьютеру, может значительно уменьшить произ- водительность системы; при этом линия модема оказывается всегда разомкнутой на стороне компьютера, а не на стороне модема. Трехпроводные кабели, часто используемые для соединения терминалов с компьютером, не достаточны для соединения модемов. Для кабеля модема на 25-разъемном последовательном порту разъемы 2, 3, 7, 8 и 20 должны присоединяться напрямую. Если вы не уве- рены в характере их использования, то кабель, соединяющий разъ- емы, будет работать правильно. То же самое сделает ленточный кабель, называемый по-другому кабелем "соединяющим напрямую", что означает соединение контактов напрямую. Для установки модема выполните следующие шаги: 1. Убедитесь, что пакет UUCP установлен. Используйте при не- обходимости для установки процедуру custom(ADM). 2. Убедитесь, что последовательный порт, который вы выбрали для модема, обеспечивающего пересылку данных абоненту се- ти, распознается во время начальной загрузки и, если модем является внутренним, убедитесь, что порт СОМ, которым кон- фигурирован внутренний модем, согласуется со всеми другими устройствами. Обеспечены только последовательные устройс- тва, присоединенные к СОМ1 и СОМ2. 3. Убедитесь, что порт отключен вводом команды: Ъ2disable ttyname 4. Подсоедините модем к компьютеру с помощью "соединяющего напрямую" кабеля (контакты 2 и 3 не используются). Кабель должен иметь соединенными по крайней мере контакты 2, 3, 7, 8 и 20. - 14-31 - Большая часть стандартных портов СОМ использует "соединяю- щие напрямую" кабели (означает, что все контакты соединяют- ся кабелем напрямую), но ряд аппаратных средств требует кабеля нулевого модема (контакты 2 и 3 используются). Стандартный порт СОМ известен как DTE, порт, которому ну- жен кабель нулевого модема, известен как DCE. Если вы не уверены, проверьте документацию по аппаратуре. Если па- нелью СОМ является DСЕ, вам нужен кабель нулевого модема. 5. Добавьте корректные элементы в файл /usr/lib/uucp/Devices. Этот файл имеет два элемента для каждого последовательного порта, используемого для модема. Один из элементов используется при запуске обращения с по- мощью модема (линия ACU), и другая линия используется для конфигурации модема с использованием стандартного набора команд Hayes (прямая линия). Следует использовать элемен- ты, аналогичные этим, которые установлены для совместимого с Hayes модемом, работающего со скоростью передачи 2400 бод с использованием СОМ1: Direct tty1a - 1299 - 2400 direct ACU tty1A - 1200 - 2400 /usr/lib/uucp/dialHA24 Убедитесь, что элементы не имеют знака решетки ("#") перед ними. Такой синтаксис предназначен для показа того, что строка является только комментарием и должна игнорировать- ся. В файле Devices имеется много примеров, которые ком- ментируются этим символом. 6. Введите следующую команду, чтобы установить UUCP как вла- дельца выбранного порта: Ъ2chown uucp /dev/ttyname 7. Проверьте модем, обеспечивающий передачу данных абоненту сети. Для проверки возможности модема выбирать номер кор- ректно используйте следующую команду: cu -ltty1a dir Вы увидите сообщение, указывающее на установление связи. Если вы увидите сообщение "cu: dir permission denied" ("cu: - 14-31а - отказ разрешения dir"), то пользователь, выполняющий ко- манду cu, не имеет разрешения на запись в файл /usr/lib/uucp/Devices. Если вы не увидите такого сообще- ния, и отсутствует сообщение, указывающее на корректность соединения, то это значит, что либо команда cu некоррект- на, либо файл Devices некорректен, либо последовательный порт не работает корректно. - 14-32 - Примечание Следующие далее инструкции предполагают совместимый с Hayes набор команд и коды ответа. Другие модемы могут использовать другие соглашения. Обратитесь к документации по модему для получения дополнительной информации. Если вы увидите сообщение, подтверждающее соединение, вве- дите:  АТ с клавиатуры. "ОК" будет отображено на экране компьютера. Если модем установлен на возврат кодов результата как чис- ловых кодов, а не текстовых, вы увидите 0. Если это не происходит, проверьте, что индикатор "получения" модема загорается при нажатии клавиши. Это указывает на то, что модем получает сигналы от клавиатуры. Если этот индикатор не загорается, проверьте кабель и установку переключателей модема. Если индикатор "получения" загорается, но вы еще не получили ответ ОК от модема, повторно введите: АТЕ1 с клавиатуры компьютера, чтобы разрешить средство выдачи эха модема. Если вы получили ожидаемые ответы, вы можете вызвать номер набором Ъ2ATDT phonenumber После получения подтверждения, что модем может быть выз- ван, завершите cu набором и далее нажмите <Возврат>. 8. Теперь вы готовы для подключения к другой системе. Для вы- зова номера следует использовать следующую команду:  cu -ltty1A 555-1212 Следует изменить "555-1212" на телефонный номер системы, которую вы хотите вызвать. Если у вас есть проблемы, - 14-32а - обратитесь к следующему разделу по поиску неисправностей в модеме, обеспечивающем пересылку данных абоненту сети. Если линия уже используется для вызова по номеру, выполните до- полнительные шаги, заданные в разделе "Установка модема, обеспечивающего вход в сеть информационного обмена данной сети". - 14-33 -  Поиск неисправностей для модема, обеспечивающего пересылку данных абоненту сети Примеры, приводимые ниже, предполагают, что модем непос- редственно присоединен к СОМ1. Часто используются другие после- довательные порты. Если имеются проблемы, сначала проверьте, что телефонное гнездо подключено, и что на телефонной линии имеется сигнал. 1. Проблема: При тестировании соединения модема командой cu -sl1200 -ltty1a dir я получил сообщение соединения, но когда я набрал "АТ", не последовало сообщения "ОК". Средство А: Проверьте кабель установки/переключения прог- рамм модема. Если используется кабель, соединяющий напря- мую, попробуйте кабель нулевого модема, использующий по крайней мере контакты 2, 3, 7, 8 и 20. После выдачи коман- ды cu наблюдайте индикацию модема и нажмите клавишу <Возв- рат> несколько раз. Индикатор "получения" должен загореть- ся при нажатии клавиши. Если это не происходит, необходимо проверить кабель, чтобы убедиться, что контакт 2 соединен напрямую (контакт 2 - это линия передачи данных от после- довательного порта модему). Если горит индикатор "получе- ния", попытайтесь использовать АТЕ1 для включения средства "эхо модема". Средство В: Последовательный порт компьютера может быть неисправен. Попытайтесь присоединить модем к другому пос- ледовательному порту или присоединить терминал или после- довательный принтер к порту для подтверждения его функцио- нирования. Если порт не функционирует, проверьте документацию по аппаратуре на соответствующее средство ре- монта. Средство С: Модем может быть неисправен. В этом случае проверьте документацию по аппаратуре на соответствующее средство ремонта. 2. Проблема: Модем осуществляет набор номера, но соединение не происходит. Средство А: Телефонный номер может быть неправильным или не работающим или телефонная линия, к которой присоединен модем, может быть неисправной. - 14-33а - Отключите модем от телефонной линии и подключите обычный телефон. Попытайтесь сами набрать номер, чтобы убедиться что модем на другой стороне линии отвечает на вызов. Средство В: Слушайте внимательно модем, когда он осущест- вляет вызов. Некоторые промышленные телефонные системы требуют, чтобы была пауза между определенными числами. Де- фис используется в команде cu для указания паузы в две се- кунды, например: "9----458--1234". - 14-34 - Дефис, приведенный в команде cu транслируется кодировщиком номера в соответствующий код для модема. Для совместимого с Hayes модема он транслируется в запятую перед посылкой в модем. 3. Проблема: При вызове номера вы увидите сообщение: Connect failed: NO DEVICE AVAILABLE (соединение не удалось, нет доступных устройств) Средство А: Нет элемента в файле Devices для порта модема. Далее следует пример элементов для совместимого с Hayes модема, работающего со скоростью передачи 2400 бод в /dev/ tty1A: Direct tty1A - 2400 direct ACU tty1A - 300-2400 /usr/lib/uucp/diaHA24 Убедитесь, что отсутствует знак решетки (#) в начале этих строк в файле Devices. Средство В: Порт модема в Devices не имеет корректную ско- рость передачи, связанную с ним. Убедитесь, что если вы используете возможность cu для задания скорости передачи, то в Devices имеется элемент, соответствующий этой скорос- ти передачи. 4. Проблема: Модем, отвечает, но я получаю символы мусора на терминале. Средство А: Пункт, который вы вызываете, может иметь дру- гие значения бита данных и четности, чем вы используете. По умолчанию cu использует 8 битов данных и не использует четность. Используйте cu -е для 7 битов данных, четности и cu -о для 7 битов данных и нечетности. Средство В: Удаленный компьютер имеет другую скорость пе- редачи. Если вы обращаетесь к другой системе UNIX, пошлите сигнал прерывания, чтобы удаленный пункт переключил ско- рость передачи во время процедуры login. Всегда запускайте систему при наивысшей скорости передачи и снижайте ее по мере необходимости. Для посылки сигнала прерывания введи- те:  %b - 14-34а - Средство С: В линии имеется шум. Это становится особенно ощутимым при работе со скоростью передачи 2400 бод и выше. Проверьте вашу телефонную линию. Обычно, когда имеется проблема с шумом линии, вы увидите символы мусора, появля- ющиеся на экране непрерывно так, как будто на другом конце линии имеется система, пытающаяся послать правильные дан- ные. - 14-35 - 5. Проблема: Мой модем не отключается в конце вызова. Средство А: Используется порт управления не модемом. Порты управления не модемом должны использоваться только с тер- миналами и когда модем конфигурирован. Какой порт исполь- зовать - это конфигурируется в файле Devices. Измените последовательный порт управления не модемом, который вы задали, на соответствующий порт управления модемом. Напри- мер порт управления модемом, связанный с tty1a - это tty1A. Средство В: Индикатор CD (регистрация носителя) модема не выключается при разъединении вызова. Проверьте переключа- тели модема, чтобы убедиться, что модем установлен для ре- гистрации входящей частоты или, если это Hayes 2400 или совместимый модем, используйте команду AT&C1. Средство С: Модем не установлен для регистрации DTR (го- товность терминала данных). Проверьте переключатели моде- ма, чтобы убедиться, что модем установлен на регистрацию DTR или, если это модем Hayes 2400, используйте команду AT &D2. Некоторые модемы имеют переключатель, который может быть установлен на игнорирование DTR, и этот переключатель не должен быть включен.  Подключение к компьютеру Для обеспечения подключения к компьютеру следует открыть последовательную линию, которая распознает сигналы управления модемом по команде enable(C). Для использования основного последовательного адаптера (СОМ1) введите:  disable tty1a enable tty1A Или для альтернативного последовательного адаптера (СОМ2) введите:  disable tty2a enable tty2A Заметим, что tty1A и tty1a относятся к одной и той же (ос- новной) последовательной линии, а tty2A и tty2a относятся к од- ной и той же (альтернативной) последовательной линии. Не ис- пользуйте одну и ту же линию в режиме модема и не-модема в одно и то же время, так как это приведет к ошибке. - 14-36 -  Установка модема, обеспечивающего вход в сеть информационного обмена Следующая процедура предоставляет пошаговые инструкции по установке модема для операций, обеспечивающих вход в сеть ин- формационного обмена. (Пароли рекомендуются для линий обеспече- ния входа в сеть информационного обмена; смотрите раздел "До- бавление защиты пароля при обеспечении входа в сеть информационного обмена" в главе "Обеспечение секретности систе- мы" для получения дополнительной информации). 1. Выполните шаги по установке модема для обеспечения пере- сылки данных абоненту сети. Это гарантирует, что вы имеете работающее соединение аппаратуры. 2. Некоторые модемы имеют переключатели или программные ко- манды для установки конфигурации модема. Если модем имеет такие средства установки, конфигурируйте его соответствую- щим образом, следуя инструкциям в руководстве по модему. Примечание Если модем разделяется между обеспечением входа в сеть инфор- мационного обмена и обеспечением пересылки данных абоненту сети, то шаг 3 может быть опущен. Инициализация для обеспече- ния входа в сеть информационного обмена выполняется автомати- чески при запуске системы или завершении пересылки данных абоненту сети. 3. Задайте для модема автоматический ответ по телефону, когда приходит вызов. Большая часть внутренних модемов не имеет автоответчиков, и некоторые внешние модемы не располагают такой возмож- ностью. В этом случае поместите следующую строку в файл инициализации /etc/rc.d/8/userdef:  (stty 1200; echo "atso=1\r" > /dev/tty1a) < /dev/tty1a "tty1a" должно быть изменено для соответствия устройству управления не модемом, к которому присоединен модем. "1200" должно быть изменено на наивысшую скорость переда- чи, используемую модемом. "ATS0=1" - это команда помещения - 14-36а - модемов, совместимых с Hayes, в режим автоответчика. Сим- вол "/r" необходим для посылки сигнала возврата каретки в модем для завершения строки команды. 4. Задайте параметры модема таким образом, чтобы он не отве- чал, когда линия DTR не активна и отсоединялся от текущей связи, когда DTR переходит из активного состояния в неак- тивное. 5. Линия CD должна быть установлена в соответствии с входной частотой, т.е. низкой, когда частота присутствует и высо- кой, когда она отсутствует. - 14-37 - 6. Задайте параметры модема таким образом, чтобы он не выда- вал эхо для команд или не отображал ответы. 7. Убедитесь, что порт закрыт вводом команды: Ъ2 disable ttyname где ttyname - порт управления не модемом. 8. Выберите нужный элемент gettydefs в файле /etc/inittab. Элемент 2 выберет цикл 1200-2400-300. 9. Откройте порт, используемый для модема, следующей коман- дой: Ъ2 enable ttyname где ttyname - это порт управления модемом. 10. Подключитесь к этому модему с другого модема. 11. Если вы не смогли успешно подключиться, смотрите следующий раздел поиска неисправностей модема, обеспечивающего вход в сеть информационного обмена.  Поиск неисправностей модема, обеспечивающего вход в сеть информационного обмена Примеры, приведенные ниже, предполагают, что модем прямо соединен с портом СОМ1. На практике модем может быть присоеди- нен к другим последовательным портам. 1. Проблема: Модем не отвечает на вызов. Средство А: Не открыт последовательный порт модема. Введи- те следующие команды:  disable /dev/tty1a enable /dev/tty1A Средство В: Модем не конфигурирован для автоответа. Про- верьте переключатели модема или, если этом модем 2400 Hayes, используйте соответствующую программную команду мо- дема (смотрите "Задания параметров модема Hayes" в конце данного раздела для получения информации о командах Hayes). Введите cu -ltty1a dir для модема и используйте команду "АТS0=1" для задания автоответа. - 14-38 - Средство С: Линия DTR (готовность терминала данных) не связывает компьютер с модемом. Проверьте контакт 20 и убе- дитесь, что он подключен. Контакты 2, 3, 7, 8 и 20 исполь- зуются для соединения модема. 2. Проблема: Модем отвечает, но зависает сразу после установ- ления соединения. Средство: Модем работает как автоответчик и регистрирует DTR, но линия DTR не заявлена. Проверьте следующие возмож- ности: а) Порт управления модемом может быть не открыт. Введите команду:  disable /dev/tty1a enable /dev/tty1A в) Кабель дефектен. Если вы используете кабель "прямого соединения", у кото- рого подключены по крайней мере контакты 2, 3, 7, 8 и 20, проверьте, что контакт 20(DTR) правильно присоединен. 3. Проблема: Я вижу сообщение об ошибке "Мусор или свободный кабель у /dev/tty1A, порт отключен" на консоли, когда вы- зов приходит в модем. Средство А: Модем установлен для обратного отображения данных или посылки ответов командам. Очень вероятно, что модем посылает сигнал "Ring" для указания того, что вызы- ваемый телефонный номер закольцован. Так как сигнал CD не активен, getty интерпретирует это как случайные данные на последовательной линии. Для коррекции этой ситуации задай- те для модема отключение эха и не посылайте ответы коман- дам. Правильной командой модема 2400 Hayes является "ATE0Q1". Средство В: Если у вас имеется внутренний модем и указан- ные выше возможности не устраняют сообщение об ошибке, то вероятно вы имеете несовместимый модем. Попытайтесь заме- нить модем стандартной моделью, совместимой с Hayes. 4. Проблема: Модем отвечает, но у меня нет подсказки login. Средство А: Линия CD не заявлена модемом после того, как модем ответил на вызов. - 14-39 - Проверьте переключатели модема или, если это модем 2400 Hayes, используйте соответствующую программную команду мо- дема. Средство В: Порт не открыт. Введите:  enable /dev/tty1A Средство С: Используется некорректный элемент /etc/gettydefs и выбрана неправильная скорость передачи. Проверьте устройство порта модема в файле /etc/itittab. Появится следующее сообщение: t1A:2:respawn:/etc/getty tty1A m Последний символ строки является указателем элемента в файле /etc/gettydefs. Проверьте этот элемент, чтобы убе- диться в правильности установки. 5. Проблема: Экран перемещается неуправляемо, когда я подклю- чаюсь к системе, обычно отображая последовательность подс- казок login. Средство: Устройства модемов и не модемов не открыты. Зак- ройте устройство не модем, введя команду:  disable dev/tty1a 6. Проблема: Я получил подсказку login, но ничего последова- тельного после этого. Средство: Параметры установки линии некорректны. Определи- те, каковы параметры установки последовательной линии в системе, которую вы вызываете. Стандартными параметрами установки, которые использует cu, являются восемь битов данных, один стоповый бит и отсутствие проверки четности. Если удаленная система использует четную четность, исполь- зуйте возможность -е в cu, которая выбирает четную чет- ность или возможность -о, которая выбирает нечетную чет- ность. Если вы подключаетесь к системе UNIX, проверьте файл /etc/ inittab на удаленной системе для проверки правильности "указателя" файла gettydefs. Имеется возможность, что характеристики последовательной линии не согласуются с параметрами stty, определенными в третьем поле выбранного - 14-39а - элемента gettydefs. Попытайтесь изменить параметры уста- новки порта на 8 битов данных, один стоповый бит и отсутс- твие четности. Элемент должен выглядеть аналогично следую- щему: 4 # B!@)) HUPCL # B!@)) CS* SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: #5 - 14-40 -  Разделение обеспечения входа в сеть информационного обмена и обеспечения пересылки данных абоненту сети Операционная система поддерживает использование обеспечения входа в сеть информационного обмена и обеспечения пересылки данных абоненту сети на одной и той же линии модема без выпол- нения повторной процедуры подключения к системе. Когда программа обеспечения пересылки данных абоненту сети использует линию, процедура login замаскирована. Если кто-то подключается к линии, когда программа обеспечения пересылки данных абоненту сети пытается использовать ее, то программа обеспечения пересылки данных абоненту сети не сможет распреде- лить устройство. Чтобы это средство работало корректно, должно использо- ваться устройство управления модемом, и модем должен установить CD в высокое значение, когда частота имеется и в низкое, когда частота отсутствует. (Информация об использовании обеспечения входа в сеть информационного обмена/обеспечения пересылки дан- ных абоненту сети совместно с UUCP содержится в главе "Создание удаленной сети с UUCP" данного руководства).  Установка разделяемого модема обеспечения входа в сеть информационного обмена / обеспечения пересылки данных абоненту сети Следующая процедура позволяет устанавливать разделяемый модем обеспечения входа в сеть информационного обмена/обеспече- ния пересылки данных абоненту сети. 1. Выполните шаги установки модема для обеспечения пересылки данных абоненту сети и шаги по установке модема для обес- печения входа в сеть информационного обмена. 2. Для выхода в систему по номеру вызовите cu с соответствую- щими возможностями. Программа getty на линии автоматически будет приостановлена до завершения вызова и повторно запу- щена после завершения вызова.  Параметры установки модема Hayes При использовании cu и uucp необходима правильная конфигу- рация модема. Обратитесь к руководству по модему для получения информации о правильной установке переключателей. Интеллектуальный модем 1200 Если у вас имеется интеллектуальный модем 1200 Hayes или сов- местимый с ним модем, переключатели 3 и 8 должны быть опущены: - 14-41 - +--------------------------------------+ | 1 2 3 4 5 6 7 8 | +------+---+---+---+---+---+---+---+---+ | вверх| * | * | | * | * | * | * | | +------+---+---+---+---+---+---+---+---+ | вниз | | | * | | | | | * | +------+---+---+---+---+---+---+---+---+ Когда переключатель 3 опущен, результирующие коды будут посланы (в виде эха) модему, терминалу или компьютеру. Когда опущен переключатель 8 модем может интерпретировать выдаваемые команды. Это позволяет работать коммуникационным системам UNIX и DOS. Интеллектуальный модем 2400 Интеллектуальный модем 2400 Hayes или совместимый модем требуют онлайновой конфигурации, если они используются как ли- ния обеспечения входа в сеть информационного обмена. Заметим, что Hayes 2400 не отвечает линии с носителем 2400 бод, если она не установлена командами на 2400 бод. Следует конфигурировать модем выдачей команд установки cu(C). Команда cu выглядит сле- дующим образом: Ъ2 cu -s2400 -lttyЪ1nn dir nn - это номер tty последовательной линии. Для конфигурирования модема для tty1A введите эту команду и нажмите <Возврат>.  cu -s2400 ltty1A dir Далее введите следующие команды для конфигурации модема. Они будут сохранены в неразрушающейся памяти модема. Если вы не хотите сохранять параметры установки, не вводите последнюю ко- манду (at&w) Команды располагаются в левой колонке, а краткие описания того, что они делают, располагаются в правой колонке. Введите каждую команду с нажатием клавиши <Возврат>: AT&f выбрать фактор конфигурации. - 14-41а - ATT набор тональной посылки. АТ10  низкий объем спикера. АТ&d2 установить dtr "2": перейти к добавочному блоку, когда dtr сбрасывается. AT&c1 установить dcd "1": носитель удаления треков dcd. ATS0=1 ответьте на вызов после первого кольца. ATS2=128 отключить последовательность выхода модема. АТе0 нет эха (модем более не выдает эхо для данных, посылаемых ему). - 14-42 - ATq1 умеренный режим (модем не отвечает ОК после этой команды или тем, что за ней следует). AT&w сохранение параметров установки в неразрушающейся памяти. Выйдите из cu вводом тильды и точки, за которым следует <Возврат>:  ~. Модем теперь конфигурирован и готов к использованию. ГЛАВА 15 Использование принтеров Введение 15.1 Спуловая система принтера 15.1 Установка принтера 15.3 Сводка команд пользователя 15.7 Сводка административных команд 15.8 Добавление локального принтера 15.10 Добавление принтера как терминала login 15.14 Запуск и останов средств печати LP 15.15 Ручной останов средств печати 15.15 Ручной запуск средств печати 15.16 Отмена запроса печати 15.17 Открытие и закрытие принтеров 15.18 Добавление принтера классу 15.19 Установка системного назначения, принимаемого по умолчанию 15.21 Монтирование формы или печатающего механизма 15.22 Удаление принтера или класса 15.24 Управление загрузкой печати 15.25 Отвержение запросов для принтера или класса 15.25 Принятие запросов для принтера или класса 15.26 Пересылка запросов на другой принтер 15.26 Примеры 15.27 Управление приоритетами очереди 15.29 Задание пределов приоритета 15.30 Задание приоритета по умолчанию 15.31 Проверка пределов и умолчаний приоритетов 15.31 Пересылка запроса в очередь 15.31 Проверка конфигурации принтера 15.33 Поиск неисправностей в системе печати 15.35 Нет выхода - нечего печатать 15.35 Неразборчивая печать 15.36 Различимая печать, неправильные интервалы 15.37 Двойные интервалы 15.37 Нет левого поля / продолжения текста 15.38 Зигзаги на странице 15.38 Неправильный набор символов или ключ 15.38 Ошибки отключения 15.39 Бездействующие принтеры 15.39 Формы 15.41 Что такое форма? 15.41 Определение формы 15.42 Удаление формы 15.44 Ограничение доступа пользователя 15.45 Сигнал монтирования формы 15.46 Монтирование формы 15.48 Проверка формы 15.48 Фильтры 15.50 Что такое фильтр? 15.50 Определение фильтра 15.54 Добавление фильтра 15.61 Удаление фильтра 15.61 Проверка фильтра 15.62 Слово предостережения 15.62 Очистка журнала запросов 15.62 Настройка средств печати 15.66 Настройка характеристик порта принтера 15.68 Настройка базы данных terminfo 15.70 Как писать программу интерфейса 15.72 Как писать фильтр 15.79 Специальные возможности конфигурации 15.81 Тип принтера 15.81 Типы содержимого 15.82 Метод соединения 15.84 Наборы символов или печатающий механизм 15.85 Предупреждение о сбоях 15.90 Восстановление при сбоях 15.92 Ограничение доступа пользователя 15.93 Атрибуты печати по умолчанию 15.94 Установка последовательных принтеров протокола RTS/CTS 15.96 Использование принтера без спулера 15.98 Создание начального файла устройства 15.99 -15-1- ВВЕДЕНИЕ Принтеры - это очень важные компоненты компьютерной систе- мы. Большая часть систем требует печати данных на бумаге. Обес- печивается большой набор печатающей аппаратуры или построчно печатающих устройств. Некоторые построчнопечатающие устройства - это параллельные устройства, но большинство является и после- довательными устройствами. Для добавления принтера системный администратор должен: - присоединить физическую аппаратуру к компьютеру, далее - использовать корректные системные команды, позволяющие начать работу с принтером. Эта глава объясняет, как сделать это и как обслуживать принтеры после их установки. Заметим, что физические соединения между принтером и системой меняются в зависимости от конфигура- ции аппаратуры. Данная глава предоставляет информацию о необхо- димых физических соединениях, но большая информация об этих со- единениях содержится в руководствах по аппаратуре, поставляемых с принтером для компьютера. Операционная система обеспечивает последовательные принте- ры, использующие стандартный интерфейс RS-232. Чтобы убедиться, что принтер использует этот интерфейс, проверьте документацию по аппаратуре. Обеспечены также протоколы RTS/CTS.  Спуловая система принтера Спуловая система строчного принтера UNIX - это набор команд, помогающих вам, как системному администратору, эффективно уста- навливать, отслеживать и контролировать строчные принтеры, обс- луживающие вашу систему. Запрос на печать файла помещается в спул или пакетируется с другими запросами на печать для посылки на принтер. Каждый запрос на печать обрабатывается и ждет своей очереди на печать, отсюда термин очередь. Когда пользователь запрашивает печать файла с помощью ко- манды lp(C) система строчного принтера отвечает "запросом ID". Он состоит из имени принтера, на котором печатается файл, и уникального номера, идентифицирующего файл. По этому идентифи- катору запроса пользователь может определить статус запроса на печать или отменить его. Возможности команды lp помогают поль- зователю легко контролировать выход принтера. -15-2- Обслуживание печати выполняет следующие функции: - обрабатывает задачу получения файлов, которые пользова- тели хотят распечатать, - фильтрует файлы (при необходимости) так, что они могут быть правильно распечатаны, - планирует работу одного или более принтеров, - запускает программы, взаимодействующие с принтером, - отслеживает состояние заданий, - предупреждает о проблемах с принтером, - отслеживает монтирование форм, - выдает сообщение об ошибке при возникновении проблем. Имеется несколько терминов, используемых в этой главе для описания работы обслуживания печати: device объект для выхода lp. Это может быть обычный (устройство) принтер,терминал,иногда используемый как принтер, или обычный файл. printer имя, назначаемое системным администратором для (принтер) представления устройства. Это имя может иметь до 14 символов. В разные моменты времени принтер мо- жет быть связан с разными устройствами. class упорядоченный список принтеров. Запросы на пе- (класс) чать, посылаемые классу принтеров, печатаются первым доступным устройством этого класса destination место посылки запросов принтера. Назначение может (назначение) быть классом или принтером. Обратитесь к руководствам по компьютеру и принтеру для по- лучения информации о соединении системы с принтерами. -15-3-  УСТАНОВКА ПРИНТЕРА В данном разделе описывается, как устанавливать новые принтеры в системе UNIX. Следует соединить принтер с соответс- твующим портом (последовательным портом для последовательных принтеров и с параллельным портом для параллельных принтеров), убедиться, что он работает и установить программное обеспечение спулинга принтера UNIX, используя выбор "Принтеры" sysadmsh. Для установки принтера выполните шаги, приведенные ниже: 1. Найдите место для принтера и убедитесь, что он правильно собран и подключен к сети. 2. Если вы соединяете последовательный принтер: присоедините кабель RS-232 от последовательного порта компьютера к пор- ту принтера. Последовательные принтеры должны обеспечивать протоколы XON/XOFF или DTR и должны быть конфигурированы для этих протоколов. Далее введите следующую команду, подставляющую правильный номер порта для nn: Ъ2disable /dev/ttynn Нажмите <Возврат>. Это предотвратит процедуры logins для порта, присоединенного к принтеру, и позволит использовать порт для последовательной коммуникации. 3. Если вы соединяете параллельный принтер: Принтер должен использовать стандартный интерфейсный кабель Centronics. Параллельный порт на монохромной плате следует конфигури- ровать для вектора прерываний 7 и он распознается как lp1 во время начальной загрузки. Основной параллельный порт следует конфигурировать для вектора прерываний 7, он рас- познается как lp0. Следует использовать либо основной, ли- бо монохромный порт - не оба - для устранения аппаратных конфликтов. Альтернативный или второй параллельный порт следует конфигурировать для вектора прерываний 5, он рас- познается как lp2. Убедитесь, что другая аппаратура не ис- пользует эти прерывания. (Смотрите руководство по аппара- туре для получения информации о конфигурировании параллельных портов). 4. Проверьте, что вы корректно подключили принтер посылкой данных непосредственно на устройство. Введите следующие команды: -15-3а- Для последовательных принтеров: date > /dev/ttynn где nn - это номер используемого последовательного порта (например /dev/tty1a). -15-4- Для параллельных принтеров: date > /dev/lpn где n - номер используемого параллельного порта (например /dev/lp0). 5. Если принтер не печатает данные, то вероятно имеется какое -то аппаратное повреждение, поэтому проверьте следующее: Для параллельных принтеров: - убедитесь, что кабель корректно присоединен, и провода исправны. Использование кабеля в известной исправной сис- теме и печать под управлением DOS - хорошие способы тести- рования ситуации; - перепроверьте конфигурацию принтера проверкой переключа- телей по руководству по аппаратуре принтера; - перепроверьте переключатели параллельной платы. Они так- же должны распознаваться при начальной загрузке. Можно проверить это перезагрузкой системы, при этом должно поя- виться сообщение, аналогичное: parallel 0x378-0x37A 07 - unit=0 (параллельный) (устройство) Для последовательных принтеров: - убедитесь, что вы используете устройство управления не модема, например: /dev/tty1a, а не /dev/tty1A. (Более под- робная информация о соглашениях по именам для последова- тельных портов содержится в разделе serial(HW). Попытай- тесь использовать кабель с соединенными контактами 2, 3 и 7. - перепроверьте конфигурацию принтера проверкой его перек- лючателей в руководстве по аппаратуре принтера; - перепроверьте переключатели последовательного порта. Ес- ли вы используете многопортовую плату, попробуйте другие линии на этой плате и убедитесь, что нет конфликтов со стандартными портами СОМ; - попытайтесь присоединить принтер к стандартному последо- вательному порту СОМ1 и СОМ2, чтобы убедиться в коррект- ности принтера и кабеля. 6. Если принтер правильно присоединен и работает, вы готовы к выполнению sysadmsh. Вам необходимо знать используемый порт или имя пути устройства в UNIX (например /dev/tty1a) и интерфейсную программу принтера, которую вы собираетесь использовать. Модельная интерфейсная программа поставляет- ся -15-5- с системой UNIX. Дополнительная информация об интерфейсных программах принтера содержится в разделе "Интерфейсные программы принтера" данной главы. 7. Выбор "Принтеры" sysadmsh отображает форму с последова- тельностью полей, которые вы должны заполнить. Если вы де- лаете ошибку при ответе на вопросы, нажмите клавишу <ESC> и запустите все снова. С верхнего уровня sysadmsh выполни- те следующий выбор:  Printers --> Configure --> Add Принтеры Конфигурация Добавить 8. Отображается следующая форма (поля обсуждаются позднее): +--------------------------------------------------------------+ | create | | Enter... | | | | Ъ /usr/auth 9 mar 89 17:20  | | | | +-----------------Adding a Printer-------------------------+ | | | | | | | Printer name [ ] | | | | | | | | Comment [ ] | | | | | | | | Class name [ ] | | | | | | | | Use printer interface [Existing] Copy New | | | | Name of interface [ ] | | | | | | | | Connection [Direct] Call-up | | | | Device name [ ] | | | | Dial-up information [ ] | | | | Device [Hirdwired] Login | | | | | | | | Require banner Yes [No] | | | +----------------------------------------------------------+ | +--------------------------------------------------------------+ 1 - создать, 2 - ввод, 3 - добавление принтера, 4 - имя принтера, -15-5а- 5 - комментарий, 6 - имя класса, 7 - использование интерфейса принтера, 8 - существующий, 9 - копия, 10 - новый, 11 - соединение, 12 - прямой, 13 - вызываемый, 14 - имя устройства, 15 - информация подключения, 16 - устройство, 17 - аппаратное, 18 - подключение, 19 - требует заголовок, 20 - да, 21 - нет. Далее приводится объяснение каждого поля:  Printer name имя нового принтера (имя принтера) Comment  комментарий, описывающий принтер (комментарий) Class name имя класса, связанного с этим принтером (имя класса) (<F3> для списка) Use printer interface использует существующий, копированный (использует интерфейс или новый интерфейс пользователя пользователя) -15-6- Name of interface имя интерфейса (или <F3> к списку существую- (имя интерфейса) щих интерфейсов) Connection должен ли принтер быть прямо связан с сис- (соединение)  темой или должен вызываться через модем или  сеть Device является ли соединение выделенным для прин- (устройство) тера или оно также используется для терми- нала login (будет закрыто планировщиком) Device name имя устройства, к которому присоединен (имя устройства) принтер (например /dev/tty01 для последова- тельного принтера и /dev/lp0 для параллель- ного принтера) Dial-up information телефонный номер модема или системное (информация набора) имя сети Require banner  приводит к тому, что заголовок всегда (требует заголовок) печатается или позволяет пользователю закрашивать печать заголовка. Когда вы закончите заполнение формы, она выполняется и формируется новая конфигу- рация. Для использования принтера вы так- же должны запустить обслуживание принте- ра, открыть принтер и разрешить принтеру получение запросов. Сделайте это, исполь- зуя следующий выбор sysadmish:  Printers --> Shedule --> Begin (принтеры планирование начало)  Printers --> Shedule --> Enable (принтеры планирование открытие)  Printers --> Shedule --> Accept (принтеры планирование прием) В случае выборов Enable и Accept вы должны обеспечить имя принтера при выдаче подсказки. Дальнейшая информация о командах обслуживания принтера со- держится в разделах "Запуск и останов обслуживания принтера", "Управление первичной загрузкой" и "Открытие и закрытие принте- ров". Sysadmish включает все эти функции, дополняя команду lpadmin(ADM). -15-7-  СВОДКА КОМАНД ПОЛЬЗОВАТЕЛЯ Обслуживание печати имеет три команды пользователя, пока- занные в таблице 15.1  Таблица 15.1 Команды пользователя для обслуживания печати Команда | Описание ------------+------------------------------------  Cancel | Отменяет запрос на печать файла ------------+------------------------------------  lp | Посылает файл или файлы на принтер ------------+------------------------------------  lpstat  | Сообщает состояние системы LP Кроме посылки запросов в систему обслуживания печати, про- верки состояния запросов и отмены запросов, пользователи должны иметь возможность закрывать и открывать принтер. Идея состоит в том, что если пользователь обнаруживает, что принтер неиспра- вен, нет необходимости вызывать админиcтратора для выключения питания. С другой стороны не имеет смысла в среде печати позво- лять обычным пользователям закрывать принтер. Вы можете контро- лировать, имеют ли доступ другие пользователи к двум командам, показанным в таблице 15.2, назначением или отменой авторизации printerstat (смотрите раздел "Изменение/Назначение авторизации подсистемы пользователя" в главе" Контроль учета пользователя" данного руководства).  Таблица 15.2 Привилегированные команды пользователя для обслуживания печати Команда | Описание ------------+---------------------------------------- disable  | деактивизирует именованный принтер(ы) ------------+----------------------------------------  enable | активизирует именованный принтер(ы) -15-8-  СВОДКА АДМИНИСТРАТИВНЫХ КОМАНД Отдельный набор команд, доступных для администратора LP, показан в таблице 15.3. Эти команды содержатся в оглавлении /usr/lib. Если вы собираетесь использовать их часть, то может оказаться удобным включение этого оглавления в переменную PATH. Для использования административных команд следует подключиться к системе либо в качестве корня, либо следует иметь авторизацию lp (смотрите главу "Обеспечение секретности системы" для объ- яснения авторизации). Заметим, что все эти команды доступны при выборе "Принте- ры" sysadmsh. Вам также вероятно понадобится использовать ко- манды для деактивизации и активизации принтера и остальные ко- манды, описанные в разделе "Сводка команд пользователя", приведенном выше.  Таблица 15.3 Административные команды для обслуживания печати LP Команда | Описание ------------------+---------------------------------------  /usr/lib/accept | позволяет запросам работ помещаться в | очередь по определенному назначению. ------------------+---------------------------------------  /usr/lib/reject | препятствует постановке заданий в очередь | по определенному назначению. Описывается на | той же странице руководства, что и | accept(ADM). ------------------+--------------------------------------- /usr/lib/lpadmin| задает или изменяет конфигурацию | принтера. ------------------+---------------------------------------  /usr/lib/lpfilte| задает или изменяет определения фильтров. ------------------+---------------------------------------  /usr/lib/lpforms| задает или изменяет формы при печати. | (Введите /usr/lib/lpadmin для монтирования | формы). ------------------+--------------------------------------- /usr/lib/lpmove | пересылает выходные запросы от одного | назначения к другому. Описано на той же | странице руководства, что и lpsched(ADM). -15-9- ------------------+---------------------------------------  /usr/lib/lpsched| запуск обслуживания печати. /usr/lib/lpscut | останавливает обслуживание печати. | Описано на той же странице руководства, что | и lpsched(ADM). ------------------+---------------------------------------  /usr/lib/lpusers| задает или изменяет приоритет по умолчанию | и границы приоритета, которые, могут быть | запрошены пользователями обслуживания | печати. Эти команды доступны также выбором "Принтеры" sysadmsh, что много проще сложного синтаксиса команд LP. -15-10-  ДОБАВЛЕНИЕ ЛОКАЛЬНОГО ПРИНТЕРА Операционная система также обеспечивает использование ло- кальных принтеров, присоединенных к порту AUX или PRINT на зад- ней панели обычного последовательного терминала. Эти принтеры присоединяются через стандартные связи RS-232 и могут значи- тельно уменьшить загрузку разделяемых системных ресурсов. Ко- манда lprint(C) используется для печати файлов на локальном принтере, но терминал должен быть правильно конфигурирован, чтобы команда работала. Для добавления принтера, связанного с портом AUX или PRINT через заднюю панель обычного принтера и использования этого локального принтера выполните следующую процедуру: 1. Присоедините локальный последовательный принтер к порту AUX вашего терминала стандартным кабелем RS-232 с соеди- ненными контактами 2, 3 и 7 (минимум). Убедитесь, что принтер включен и находится в состоянии онлайн. 2. Подключитесь к системе UNIX с терминала и проверьте, что терминал работает правильно. 3. Убедитесь, что порт AUX терминала конфигурирован так же, как и принтер (скорость передачи, четность, биты данных, XON/XOFF и так далее). 4. Чтобы команда lprint работала, lprint должна знать, как запустить и остановить локальную печать для каждого от- дельного терминала. lprint просматривает файл /etc/termcap для нахождения двух атрибутов терминала: PN (запуск печати) и PS (останов печати). Это последователь- ности выхода, которые должны посылаться на терминал для управления локальной печатью. Только несколько терминалов имеют эти атрибуты, определенные в элементах termcap. Ис- пользуйте текстовый редактор (такой, как Vi(C)) для про- верки файла /etc/termcap. (/etc/termcap может также быть альтернативным файлом, как это определяется переменной TERMCAP). Найдите этот элемент для вашего терминала. Нап- ример, если терминалом является Wyse60, вам следует искать wyse60. Элемент termcap выглядит следующим образом: -15-11- w7|wy60|wyse60|Wyse WY-60 with 80 column/24 line screen in wy60 mode:\ :is=\E`\072\Ee(\EO\Ee6\Ec41\E 4\Ec21\Ed/:\ :if/usr/lib/tabset/std:pt:\ :G1=\EH3:G2=\EH2:G3=\EH1:G4=\EH5:GD=\EH0:GG#0:GH=\TH\072:\ :GU=\EH=:GV=\EH6:GR=\EH4:GL=\EH9:GC=\EH8:GF=\EH7:\ :PU=\EJ:PD=\EK:\ :a1=\EE:am:bs:bt=E1:cd=\EY:ce=\ET:c1=\E+:\ :cm=\Ea%i%dR%dC:co#80:dc=\EW:dl=\ER:ei=\Er:im=\Eq:k0=^AI\r:\ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7= 6AF\r:\ :k8=6AG\r:k9=^AH\r:kd=^J:kh=^ :kl=^H:kr=6L:ku=^K:\ :li#24:mi:nd=^L:se=\EG0:so=\EG4:sg#0:ug#0:ue=\EG0:u1:up=^K:us =\EG8: w8|wy60|wyse60|Wyse WY-60 with 132 column/24 line screen in wy60 mode:\ :is=\E`\073\Ee(\EO\Ee6\Ec41\E 4\Ec21\ :if/usr/lib/tabset/std:pt:\ :G1=\EH3:G2=\EH2:G3=\EH1:G4=\EH5:GD=\EH0:GG#0:GH=\TH\072:\ :GU=\EH=:GV=\EH6:GR=\EH4:GL=\EH9:GC=\EH8:GF=\EH7:\ :PU=\EJ:PD=\EK:\ Wyse60 не содержит определения PN и PS. Как и в случае других терминалов следует добавить строку, содержащую эти два атрибута для элемента /etc/termcap для вашего термина- ла. Добавляемая строка имеет вид: -15-11а- :PN=start sequence:PS=stop sequence:\ 5. Обратитесь к руководству по терминалу для обнаружения пос- ледовательности управляющих символов, используемых для пе- реключения дополнительного порта. Иногда это называется как режим "путь через" или "прозрачный режим". Примером последовательности, разрешающей дополнительную печать, яв- ляется код включения порта для Wyse 60 терминала: <ESC> d # А код, выключающий его снова - это: <CTL>t 6. Эти ключевые строки должны транслироваться в формат termcap перед их помещением в файл termcap. termcap использует следующие коды, представляющие ключевые строки: -15-12- +------------------+---------------------------+ | Ключевая строка | Последовательность termcap| +------------------+---------------------------+ | ESCAPE | \E | | CTRL-x | ^x (x - это любой символ) | | NEWLINE | \n | | RETUTN | \r | | TAB | \t | | BACKSPACE | \b | | FORMFEED | \f | +------------------+---------------------------+ Для использования управляющей последовательности исполь- зуйте символ (^), а не клавишу <CTL>. Например <CTL> х мо- жет быть представлено ^х. Кроме того символы могут быть представлены их восьмеричными кодами (смотрите ascii(M), и символами обратная черта и (^), представленными как \^ и \ \ соответственно). Элементы для атрибутов termcap должны быть разделены двоеточием (:). (Смотрите termcap(M) для получения дополнительной информации). Напомним, что атрибутами termcap для запуска и останова печати являются PN и PS. Использованием приведенный выше табли- цы можно получить, что элемент termcap для ключевой строки Wyse 60 <ESC> # d (начало печати, PN) и <CTL> Т (останов печати, PS) выглядит следующим образом: :PN=\Ed#:PS=^T:\ 7. Для терминала Wyse 60 вы просто вставляете указанную выше строку в элемент termcap для Wyse 60. (Вы должны убедить- ся, что строка вставляется в пределах элемента для вашего терминала; не добавляйте ее, как первую строку или послед- нюю строку). Для других терминалов проверьте руководство и найдите пра- вильные последовательности для включения и выключения до- полнительного режима печати и подставьте последовательнос- ти termcap, как в этом примере. Некоторые терминалы (такие, как Wyse60) включают "прозрачный" режим, когда данные не отображаются на экране во время печати. (Это ре- жим, выбранный последовательностью PN в данном примере). -15-12а- Примечание Вы должны быть подключены к системе в качестве корня для ре- дактирования /etc/termcap. Мы рекомендуем, чтобы вы не копи- ровали первоначальный файл под другим именем в случае, когда вы совершаете ошибку. Вы можете также извлечь файл снова из вашей дистрибуции, используя custom(ADM). -15-13- 8. После добавления элементов PN и PS отключитесь и вернитесь снова для активизации нового элемента termcap. 9. Используйте следующую команду для печати файла filename на локальном принтере: Ъ2 lprint filename Не касайтесь клавиатуры во время локальной печати; вы не можете выполнять другие задачи на терминале во время печа- ти. 10. Если файл печатается на экране вместо принтера, то соз- данные элементы PS и PN некорректны. Замените элементы правильными кодами. Если файл еще не печатается на принте- ре или терминале, попытайтесь соединить контакты Передачи и Получения данных в кабеле, соединяющем порт AUX термина- ла и принтер. -15-14-  ДОБАВЛЕНИЕ ПРИНТЕРА КАК ТЕРМИНАЛА LOGIN Для добавления прямо присоединенного принтера к системе для использования в качестве терминала login введите: Ъ2 /usr/lib/lpadmin -p Ъ1printername Ъ2-v Ъ1pathname -l sysadmish пользователи выбирают: Printer-->Configure-->Add (Принтеры-->Конфигурирование-->Добавление) Как и ранее pathname - это имя специального файла, предс- тавляющего порт принтера. -l указывает, что принтер будет авто- матически закрыт, когда обслуживание принтера запускается, что- бы позволить пользователям подключиться к системе. Принтер или терминал должны быть вручную открыты перед их использованием для печати. -15-15-  ЗАПУСК И ОСТАНОВ ОБСЛУЖИВАНИЯ ПЕЧАТИ LP При нормальной работе вы никогда не запускаете или не ос- танавливаете обслуживание печати вручную. Оно автоматически за- пускается каждый раз при запуске операционной системы и завер- шается каждый раз при останове операционной системы. Однако, если вам нужно остановить обслуживание печати без останова опе- рационной системы вы можете сделать это, выполнив процедуру, описанную в следующем разделе. Останов обслуживания принтера прекращает всю печать в те- чении нескольких секунд. Любые запросы на печать, которые не закончили выдачу на печать, печатаются полностью после рестарта обслуживания печати. Конфигурации принтера, формы и фильтры, действующие на момент останова обслуживания принтера восстанав- ливаются после рестарта. Примечание Для ручного запуска и останова обслуживания печати вы должны быть подключены к системе либо как корневой суперпользова- тель, либо как пользователь с авторизацией lp.  Ручной останов обслуживания печати Для ручного останова обслуживания печати введите следующую команду:  /usr/lib/lpshut  sysadmish пользователи выбирают: Printers-->Shedule-->Stop (Принтеры-->Планирование-->Останов) Отображается состояние: Print services stopped (Средства печати остановлены) Вся печать прекращается в течении нескольких секунд. Если вы пытаетесь остановить обслуживание печати, когда оно не вы- полняется, вы увидите сообщение: Print services already stopped (Обслуживание печати уже остановлено) -15-16- Примечание Задания могут передаваться через принтер, который не находит- ся в состоянии online. Если принтер не находится в сoстоянии online или не работает правильно, следует закрыть принтер.  Ручной запуск обслуживания принтера Для ручного рестарта обслуживания принтера введите следую- щую команду:  /usr/lib/lpshed  sysadmsh пользователи выбирают: Printers-->Shedule-->Begin (Принтеры-->Планирование-->Начать) Отображается сообщение: Print services started (Запущено обслуживание печати) Может потребоваться минута или две для переустановки кон- фигураций, форм и фильтров принтера перед тем, как сохраненные запросы на печать начнут печататься. Если вы пытаетесь рестар- товать обслуживание печати во время ее выполнения, вы увидите сообщение: Print services already active (Обслуживание печати уже активно) Примечание Вы не должны останавливать обслуживание печати для изменения конфигураций принтера или добавления форм или фильтров. -15-17-  ОТМЕНА ЗАПРОСА ПЕЧАТИ Для отмены запрошенной печати используйте комaнду cancel(C). Когда вы запрашиваете печать, система отображает идентификатор запроса для вашего задания. Например, если вы по- сылаете задание на принтер "лазер" в систему, UNIX отображает идентификатор запроса в следующем виде: +----------------------------------------------------------- | request id is laser-number | где число - это номер, назначенный заданию. Для отмены задания перед началом печати используйте команду: Ъ2 cancel laser-number  sysadmsh пользователи выбирают: Printers-->Request-->Cancel (Принтеры-->Запрос-->Отмена) Печать отменяется. Большая часть систем печатает быстро, так что команда cancel должна использоваться быстро, чтобы быть эффективной. -15-18- АКТИВИЗАЦИЯ И ДЕАКТИВИЗАЦИЯ ПРИНТЕРОВ Команда enable позволяет lpshed печатать файлы на принте- ре. Принтер может принимать запросы для печати после того, как для принтера принята команда accept, но для печати файлов долж- на также быть выдана команда enable. Например для активизации принтера с именем " daisy" введи- те:  enable daisy  sysadmsh пользователи выбирают: Printer-->Shedule-->Enable (Принтеры-->Планирование-->Активизировать) Вы можете деактивизировать принтеры командой disable. Пла- нировщик lpshed не посылает запросы печати на деактивизирован- ные принтеры независимо от их состояния. Возможность -r позво- ляет вам послать сообщение пользователям, объясняющее, почему принтер деактивизирован. Например для деактивизации принтера с именем "лазер" из-за замятия бумаги введите:  disable -r "paper jam" laser Пользователи, запрашивающие состояние "лазера" командой lpstat -plaser получат следующее сообщение: +-------------------------------------------------- |printer laser disabled since Dec 5 10:15 |paper jam | (принтер лазер деактивизирован 5 декабря 10:15) Дополнительная информация об этих двух командах содержится в разделах enable(C) и disable(C) документа User's Reference. -15-19-  ДОБАВЛЕНИЕ ПРИНТЕРА КЛАССУ Часто удобно рассматривать набор принтеров как один класс. Преимущество состоит в том, что пользователь может послать файл на печать члену класса, и обслуживание печатью выбирает первый принтер в классе, который является свободным. Это повышает про- пускную способность, так как принтеры используются максимально эффективно. Классы не нужны, если единственной целью является разре- шить пользователю передать запрос на печать определенному прин- теру. Команда типа lp -Т позволяет пользователю передавать файл и задавать его тип. Первый доступный принтер, который может об- рабатывать этот тип файла, печатает файл. Обслуживание печати не использует фильтр, если это возможно, выбирая принтер, кото- рый может печатать файл напрямую, который первый нуждается в фильтрации. Примечание Смотрите раздел "Фильтры" данной главы для получения дополни- тельной информации о фильтрах. Одним из способов является помещение в класс набора прин- теров, которые будут использоваться в особом порядке. Если у вас имеется высокоскоростной принтер и низкоскоростной принтер, например, вы, вeроятно, захотите, чтобы высокоскоростной прин- тер обрабатывал столько запросов, сколько возможно, а низкоско- ростной принтер использовался, когда другой занят. Так как обс- луживание печати всегда проверяет доступный принтер в том порядке, в каком принтеры добавляются в класс, вы можете доба- вить высокоскоростной принтер в класс перед низкоскоростным принтером, и это позволяет обслуживанию печати направлять зап- росы печати в нужном порядке. Добавьте принтер в класс, используя следующую команду: Ъ2 /usr/lib/lpadmin -p Ъ1printernameЪ2 -c classname  sysadmsh пользователи выбирают: Printers-->Configure-->Modify (Принтеры-->Конфигурирование-->Модификация) Если класс classname еще не существует, он создается. -15-20- Примечание Имена классов и имена принтеров должны быть уникальными. Это позволяет пользователю задавать назначение для запроса печати не зная, относится ли оно к классу принтеров или к отдельному принтеру. Таким образом вы не можете иметь класс и принтер с одним названием. Пока вы не добавили принтер к классу, он не принадлежит ни к одному из них. -15-21-  ЗАДАНИЕ ПО УМОЛЧАНИЮ СИСТЕМНОГО НАЗНАЧЕНИЯ Вы можете определить принтер или класс, используемый для печати файла, когда пользователь не запросил явно некоторое назначение и не задал переменную оболочки LPDEST. Принтер или класс должны уже существовать. Задайте принтеру или классу назначение по умолчанию вводом следующей команды: Ъ2 /usr/lib/lpadmin -d printername или classname sysadmsh пользователи выбирают: Printers-->Configure-->Default (Принтеры-->Конфигурирование-->По умолчанию) Если вы позднее решили, что не должно быть назначения по умолчанию, введите нулевое printername или classname, как в следующей команде:  /usr/lib/lpadmin -d sysadmsh пользователи выбирают: Printers-->Configure-->Default (Принтеры-->Конфигурирование-->По умолчанию) Если вы не задали назначение по умолчанию, то его не бу- дет. Пользователи должны явно именовать принтер или класс в каждом запросе печати, или они должны установить в переменной оболочки LPDEST имя назначения. Для оболочки С:  setenv LPDEST=printer Для оболочки Bourne:  LPDEST=printer; export LPDEST -15-22-  МОНТИРОВАНИЕ ФОРМЫ ИЛИ ПЕЧАТАЮЩЕГО МЕХАНИЗМА Примечание Смотрите раздел "Формы" данной главы для получения информации о препринтных формах. Перед тем, как обслуживание печати начинает печатать фай- лы, которым необходима препринтная форма или печатающий меха- низм, вы должны смонтировать их для принтера. Если средство предупреждения установлено для формы или печатающего механизма, то вы будете извещены, когда достаточное количество запросов печати становится в очередь на монтирование. Когда вы монтируете форму, то вы можете захотеть убедить- ся, что она установлена правильно. Если для формы зарегистриро- ван образец выравнивания, вы можете запросить повторную печать до тех пор, пока вы не настроите принтер так, чтобы образец вы- равнивания выглядел корректно. Монтирование формы или печатающего механизма включает пер- воначальную ее загрузку в принтер с последующим извещением обс- луживания печати о монтировании. Так как трудно делать это для принтера, печатающего в настоящий момент, и так как обслужива- ние печати продолжает печатать файлы, которым не нужна форма на принтере, то вам вероятно необходимо сначала деактивизировать принтер. Таким образом правильная процедура выглядит следующим образом: 1. Деактивизация принтера с помощью команды disable. 2. Монтирование новой формы или печатающего механизма, как это описано позднее в данном разделе. 3. Повторная активизация принтера с помощью команды enable. (Команды disable и enable описаны ранее в разделе "Активи- зация и деактивизация принтеров" данной главы). -15-23- После загрузки новой формы или печатающего механизма в принтер введите следующую команду для запроса у обслуживания печати монтирования. (Эта команда показана на двух строках для простоты чтения: она должна вводиться как одна строка). Ъ2 /usr/lib/lpadmin -p Ъ1printernameЪ2 -M -S print-wheelname -f Ъ1formname -a -o filebreak sysadmsh пользователи выбирают: Printers-->Auxiliary-->PPforms-->Configure (Принтеры-->Вспомогательный-->РРформы-->Конфигурация) Пропустите -S print-wheelname, если вы монтируете только форму или пропустите Ъ2-f Ъ1formname -a -o filebreak, если вы мон- тируете только печатающий механизм. Если вы монтируете форму, у вас запрашивается нажатие кла- виши <Возврат> перед тем, как печатается каждая копия образца выравнивания. После печати образца вы можете настроить принтер и снова нажать клавишу возврата. Если образец выравнивания не зарегист- рирован, у вас не запрашивается нажатие клавиши. Вы можете от- менить возможности -а и -о filebreak, если вы не хотите иметь дело с образцом выравнивания. Возможность -о filebreak запрашивает у обслуживания печати LP добавление formfeed после каждой копии образца выравнивания. Действительная управляющая последовательность, используемая для formfeed, зависит от используемого принтера и получается из ба- зы данных terminfo. Если образец выравнивания уже включает по- дачу формы, опустите возможность -о filebreak. Если вы хотите размонтировать форму или печатающий меха- низм, используйте следующую команду: /usr/lib/lpadmin -p Ъ1printername -M -S none -f none  sysadmsh пользователи выбирают: Printers-->Auxiliary-->PPforms-->Remove (Принтеры-->Вспомогательный-->РРформы-->Удаление) Опустите -S none, если вы только хотите размонтировать форму; в противном случае опустите -f none, если вы только хо- тите размонтировать печатающий механизм. Пока вы монтируете форму на принтере, посылаются только запросы печати, не требующие форму. В противном случае пока вы монтируете печатающий механизм на принтере, пересылаются только запросы печати, не требующие отдельного печатающего механизма. -15-24-  УДАЛЕНИЕ ПРИНТЕРА ИЛИ КЛАССА Вы можете удалить принтер или класс, если отсутствуют жду- щие запросы печати. Если имеются ждущие запросы, вы должны сна- чала переслать их на другой принтер или класс, используя коман- ду lpmove или удалить их, используя команду cancel. Удаление последнего оставшегося принтера из класса автома- тически удаляет весь класс. Однако, удаление класса не приводит к удалению принтеров, которые были элементами этого класса. Ес- ли удаляемый принтер или класс являются также по умолчанию сис- темным назначением, то у системы более нет принимаемого по умол- чанию назначения. Для удаления принтера или класса введите следующую коман- ду: Ъ2 /usr/lib/lpadmin -p printername или classname  sysadmsh пользователи выбирают: Printers-->Configure-->Remove (Принтеры-->Конфигурирование-->Удаление) Если все, что вы хотите - это удаление принтера из класса, а не удаление принтера, введите следующую команду: Ъ2 /usr/lib/lpadmin -p Ъ1printername Ъ2-r classname  sysadmsh пользователи выбирают: Printers-->Configure-->Modify (Принтеры-->Конфигурирование-->Модификация) -15-25-  УПРАВЛЕНИЕ ЗАГРУЗКОЙ СИСТЕМЫ Вам может потребоваться остановить прием запросов печати для принтера или переслать запросы печати с одного принтера на другой. Имеются различные причины для этого, такие как следую- щие: - принтер нуждается в периодическом сопровождении; - принтер сломался; - принтер удален; - вы изменили конфигурацию так, что принтер может исполь- зоваться по-другому; - слишком много больших запросов принтера поставлено в очередь к одному принтеру и должны быть распределены. Если вы собираетесь произвести большое изменение в способе использования принтера, таком, например, как останов его воз- можности обработки определенной формы, изменение печатающего механизма, доступного для принтера, запрет использования прин- тера некоторыми людьми, то запросы печати, стоящие в очереди к принтеру, должны быть пересланы или отменены. Обслуживание пе- чати пытается найти альтернативные принтеры, но только в слу- чае, если пользователь не выбирает используемый принтер. Такие запросы не пересылаются автоматически; если вы не пересылаете их, то обслуживание печати отменяет их. Если вы решили, что принтер следует вывести из системы, его конфигурацию следует изменить или, что он слишком загружен, то вы можете переслать запросы печати с него и отвергнуть до- полнительные запросы. Используйте для этого команды lpmove и reject. Если вы не отвергаете запросы принтера, вы можете позд- нее принять запросы с помощью команды accept.  Отказ от запросов для принтера или класса Для останова принятия новых запросов для принтера или класса принтеров введите следующую команду: Ъ2 /usr/lib/reject -r "reason" printername или classname sysadmsh пользователи выбирают: Printer-->Shedule-->Reject (Принтеры-->Планирование-->Отказ) Вы можете отвергнуть запросы для нескольких принтеров или классов одной командой, перечислив их имена в одной строке, разделив имена пробелами. -15-26- reason (причина) отображается, когда кто-то пытается печатать файл на принтере. Вы можете отменить это (и -r) если не хотите получить причину. Хотя команда reject останавливает принятие новых запросов печати, она не пересылает или отменяет какие-ли- бо запросы, стоящие в настоящее время в очереди к принтеру. Они продолжают печататься, пока принтер активизирован.  Принятие запросов для принтера или класса Команда accept позволяет принтерам или классам принтеров принимать запросы печати, сделанные командой lp. Вы можете раз- решить принтеру прием запросов после того, как он правильно конфигурирован. После того, как условие, ведущее к отмене запросов, скор- ректировано или изменено, введите следующую команду для запуска новых запросов: Ъ2 /usr/lib/accept printername или classname  sysadmsh пользователи выбирают: Printer-->Shedule-->Accept (Принтеры-->Планирование-->Прием) Снова вы можете принять запросы для нескольких принтеров или классов в одной команде, перечислив их имена в одной стро- ке. Вы всегда должны использовать команду accept для нового принтера или класса после их добавления, так как обслуживание печати первоначально не принимает запросы для новых принтеров или классов.  Пересылка запросов на другой принтер Если вы должны пересылать запросы с одного принтера или класса на другой, введите одну из следующих команд: Ъ2 /usr/lib/lpmove request-id printername Ъ2 /usr/lib/lpmove printername1 printername2  sysadmsh пользователи выбирают: Printer-->Request-->Move (Принтеры-->Запрос-->Пересылка) -15-26а- Вы можете получить более одного идентификатора запроса пе- ред именем принтера в первой команде. Первая команда пересылает перечисленные запросы на именованный принтер. Последняя команда пересылает все запросы, стоящие в очереди,к первому принтеру, на второй принтер. Когда используется последняя команда, обслу- живание принтера также не принимает более запросы для первого принтера (Это имеет тот же эффект, что и команда reject). -15-27-  Примеры Приводится несколько примеров того, как вы можете исполь- зовать команды lpmove, accept и reject: Пример 1 Вы решили изменить ленту на принтере lp1 и выполнить неко- торое предупредительное обслуживание. Вы хотите переслать все запросы для принтера lp1 на принтер lp2. После пересылки запро- сов обслуживание печати не принимает более запросы для lp1 (это имеет тот же эффект, что и команда reject lp1,выданная после команды lpmove).  /usr/lib/lpmove lp1 lp2 Теперь вы можете деактивизировать принтер и запустить ра- боту на нем. После завершения вы можете вернуть его в систему:  /usr/lib/accept lp1 В этой точке, если вы деактивизировали принтер, вам следу- ет повторно активизировать его. Смотрите раздел "Активизирова- ние и деактивизирование принтеров" данной главы. Пример 2 Вы заметили, что кто-то поставил в очередь несколько боль- ших файлов для печати на принтер laser1. В это время принтер laser2 простаивает, так как очередь запросов к нему отсутству- ет. Вы пошлете два небольших запроса laser1-23 и laser1-46 на laser2 и откажетесь от любых новых запросов для laser1 на это время.  /usr/lib/lpmove laser1-23 laser1-46 laser2 /usr/lib/reject -r "too busy--will reopen late" (слишком велик - переоткройте позднее)  laser1 -15-28- Пример 3 Вы хотите предотвратить направление запросов печати на принтер 4 из-за ремонта:  /usr/lib/reject -r "printer4 needs repair" printer4 (принтер4 нуждается в ремонте) Пользователь, запрашивающий печать файла на принтере4, по- лучает следующее сообщение: +----------------------------------------------------------- | lp: can not accept requests for destination "printer4" | (не может получить запросы по назначению "принтер4") | --printer printer4 needs repair | (принтер принтер4 нуждается в ремонте) Для определения состояния приема назначений печати введите:  lpstat -a -15-29-  УПРАВЛЕНИЕ ПРИОРИТЕТАМИ ОЧЕРЕДЕЙ Обеспечение печати предоставляет простой механизм приори- тетов, который пользователи могут использовать для настройки положения запроса печати в очереди. Каждому запросу печати мо- жет присваиваться уровень приоритета лицом, которое занимается этим; это число в диапазоне от 0 до 39, причем меньшие числа указывают на более высокий уровень приоритета. Запросы с более высоким уровнем приоритета (меньшие числа) помещаются впереди запросов с низким приоритетом (большие числа). Таким образом, если вы решили, что запрос печати имеет слишком низкий приоритет, вы можете установить более высокий приоритет (меньшее значение), когда назначаете файл для печати. Если вы решили, что запрос печати имеет слишком высокий приори- тет, вы можете задать более низкий приоритет (большее значение) при назначении файла для печати. Схема приоритета просто не работает, если нет контроля над тем, насколько высокий приоритет может быть установлен. Вы мо- жете определить следующие характеристики этой схемы: - каждому пользователю может быть назначен предел приори- тета. Никто не может назначить запросу печати приоритет более высокий, чем предел, хотя запросу может быть назна- чен более низкий приоритет. - предел приоритета по умолчанию может быть назначен для баланса пользователей, которым неназначен персональный приоритет. - может быть установлен приоритет по умолчанию. Это прио- ритет, присвоенный запросам печати, которым пользователь не назначил приоритет. Установив характеристики в соответствии с потребностями вы можете предотвратить влияние низкоприоритетных задач печати (таких, как обычная печать большинства пользователей) на высо- коприоритетные задачи печати (такие, как печать проверки доку- ментов учетным персоналом). Вы можете обнаружить, что вам необходимо напечатать неко- торый запрос печати перед другими, возможно даже, что он должен предшествовать печатаемым в настоящее время запросам. Вы должны с помощью средств печати передать запрос на немедленную обра- ботку и задержать другие запросы печати. Это позволяет печатать нужный запрос и задерживает печать текущего запроса до его восстановления. -15-29а- Команда lpusers позволяет назначить как пределы приоритета для пользователей, так и приоритеты по умолчанию. Кроме того, вы можете использовать команды Ъ2lp -i Ъ1request-id -H hold и lp -i request-id -H immediate для помещения запроса в задержанное состояние или пересылки его для немедленной печати соответс- твенно. Эти команды обсуждаются подробно позднее. -15-30-  Установка пределов приоритета Для установки предела приоритета пользователя введите сле- дующую команду: Ъ2 /usr/lib/lpusers -q Ъ1priority-level Ъ2-u username Вы можете установить предел для группы пользователей пере- числением их имен после возможности -u. Имена разделяются запя- той или пробелом (заключая список в кавычки, если вы используе- те пробел). Уровень приоритета - это число от 0 до 39. Как указано ранее, чем меньше число, тем выше приоритет, или, в данном случае, предел приоритета. Если вы хотите задать предел приоритета для всех других пользователей, введите следующую команду: Ъ2 /usr/lib/lpusers -q priority-level  sysadmsh пользователи выбирают: Printers-->Priorities-->Default (Принтеры-->Приоритеты-->По умолчанию) При этом устанавливается предел по умолчанию, значение по умолчанию относится к тем пользователям, которым не задан лич- ный предел с использованием рассмотренной ранее команды lpusers. Если вы позднее решили, что кто-то должен иметь другой предел приоритета, введите повторно первую команду, указанную выше, с новым пределом. Если вы решили, что кто-то с личным пределом должен иметь предел по умолчанию, введите следующую команду: Ъ2 /usr/lib/lpusers -u username  sysadmsh пользователи выбирают: Printers-->Priorities-->Remove