el соответствует полю режима линии в /etc/inittab. Программа init передает режим линии программы getty, как аргумент. initial-flags устанавливают характеристики линии терминала, когда программа getty первоначально устанавли- вает связь. Программа getty распознает флаги, - 14-9а - перечисленные в termio(М) в документе User's Reference. Часто единственным устанавливаемым флагом в этом поле является флаг скорости пере- дачи. Например В300 задает скорость передачи, равную 300. - 14-10 - final-flags устанавливают характеристики линии терминала (сразу перед тем, как программа getty вы- полняет процедуру login. Эти флаги опи- сывают рабочие характеристики для линии. Снова устанавливается скорость передачи В. Другие общие флаги включают SANE (составной флаг, ко- торый устанавливает для ряда характеристик терминала соответствующие значения, ТАВ3 (рас- ширяет таблицы пробелами), IXANY (разрешает любому символу выполнение рестарта выхода) и HUPCL (перехватывает линию при конечном закры- тии). Флаги могут вводиться в любом порядке. login-prompt содержит сообщение LOGIN, выдаваемое пользова- телю. Это поле печатается точно в том виде, в каком оно вводится, включая пробелы и символы табуляции. Символ "@" в поле подсказки login расширяется в первой строке (или второй стро- ке, если она имеется) в файле /etc/systemid (если только символу @ не предшествует знак '\'). Распознаются несколько последовательностей символов, включая: \n перевод строки \t табуляция \r возврат каретки \f перевод формата \v вертикальная табуляция \b пробел \nnn (3 восьмеричных цифры) заданные символы ASCII next-label идентифицирует следующую метку в gettydefs для getty для повторного выполнения, если предыду- щее заканчивается неудачно. Getty переходит на следующую метку, если пользователь нажимает клавишу BREAK при попытке подключения к систе- ме. Группы элементов, такие как коммутируемые или TTY линии, должны образовывать закрытый набор так, что getty переходит обратно к пер- воначальному входу, если ни один из других входов не выполняется успешно. login-program имя программы, которая в действительности подключает пользователей к системе. По умолча- - 14-10а - нию это программа /etc/login. Это поле являет- ся выборочным. Если присутствует ключевое слово AUTO, то getty не выдает подсказку для имени пользова- теля, но вместо этого использует имя устройс- тва (то есть tty03) как имя пользователя и не- медленно выполняет программу login. - 14-11 - Каждое поле разделяется знаком решетки (#) и каждый эле- мент в gettydefs разделяется пустой строкой. Элемент в gettydefs может выглядеть следующим образом: 4#B1200 SANE TAB3 HUPCL #login: #2#AUTO /etc/login new Далее следует описание каждой части этой строки: * число 4 идентифицирует этот элемент getty; * следующее поле задает скорость передачи 1200; * третье поле указывает скорость передачи (В1200), SANE (составной флаг для ряда характеристик) и HUPCL (перех- ват строки при конечном закрытии); * login : появляется как подсказка login. Если это задание не успешно, getty переходит к метке 2 в gettydefs; * AUTO пытается подключить пользователя выполнением /etc/login new. Если последний элемент также содержит filename, то выпол- няется программа login. (Заметим, что filename и соответствую- щая программа login создаются пользователем). Например может использоваться включение файла, такого как /etc/diаl_login для линии, присоединенной к модему. Следует задать идентификатор пользователя, назначить пароль, проверить пользователя и далее назначить пользователя. При этом возможно потребуется пароль для системы в добавление к учетному паролю, а также задание специального набора переменных среды подключения, включенных в /etc/default/dial_login.  Изменение файла gettydefs Файл /etc/gettydefs задает наборы элементов для коммутиру- емых линий и линий терминалов. Эти наборы элементов соответс- твуют заданиям режимов линий в /etc/inittab. Программа init пе- редает режим линии как аргумент для getty. - 14-12 - Можно редактировать gettydefs для добавления новых устано- вок для терминала или изменения существующих. Например задание установок для терминала может выглядеть следующим образом: 4 # B2400 HUPCL # B2400 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 5 5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 6 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4 Для изменения файла-образца gettydefs таким образом, чтобы getty пыталась использовать скорость передачи 1200 выполните следующие действия: 1. Вызовите текcтовый редактор для редактирования первой строки файла gettydefs. 2. Измените первое и третье поля с В2400 на В1200. 3. Сохраните gettydefs и выйдите из редактора. Файл-образец будет выглядеть как в следующем примере: 4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 5 5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 6 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4 Вы можете также добавить дополнительные задания для линии терминала в gettydefs. Флаги и допустимые значения для заданий для терминала перечислены в stty(C) документа User's Reference. Когда вы добавляете новый элемент, убедитесь, что группы элементов в gettydefs образуют закрытый набор, так что поле next-label последнего элемента направляет getty обратно к пер- вому элементу группы. Для добавления элемента, задающего скорость передачи 300 в предшествующем файле образце gettydefs выполните следующие ша- ги: 1. Вызовите текстовый редактор для редактирования файла /etc/ gettydefs. - 14-13 - 2. Найдите точку, где вы хотите поместить новые определения установки для gettydefs. Порядок элементов не существенен; getty только просматривает метку. В данном примере новый элемент является последним элементом файла. 3. Поместите символ возврата каретки после последней строки в файл и введите следующую новую строку # B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4 4. Для помещения метки 7 в набор меток измените поле next_label для элемента с 6 на 7: 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 7 Getty теперь направляется с метки 6 на метку 7 и далее об- ратно на метку 4. 5. Завершите работу текстового редактора с сохранением изме- ненного файла gettydefs. Новый файл gettydefs выглядит следующим образом: 4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 5 5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 6 6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 7 7 # B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY #\r\n@!login: # 4  Проверка параметров установки терминала Каждый раз, когда вы изменяете параметры установки линии терминала или добавляете новые элементы в файл gettydefs следу- ет проверить, что новые значения удовлетворяют getty Чтобы сде- лать это, используйте команду getty с возможностью проверки -с и именем файла. Например для проверки gettydefs введите: getty -c /etc/gettydefs - 14-14 - Если любые из значений и параметров установки в файле gettydefs не разрешены, getty -с отображает их на экране терми- нала. Дополнительная информация о getty и gettydefs содержится в разделах getty(M) и gettydefs(F) документа User's Reference. - 14-15 -  ИЗМЕНЕНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОЙ ЛИНИИ Когда вы "открываете" терминал командой enable, система автоматически устанавливает рабочие характеристики последова- тельной линии по умолчанию. Иногда эти значения не соответству- ют величинам, используемым терминалом и поэтому должны менять- ся, чтобы обеспечить связь между системой и терминалом. Можно отобразить рабочие характеристики последовательной линии коман- дой stty (set tty). Если нужно изменить характеристики "откры- того" порта, следует использовать элементы в файле gettydefs, а не команды stty, приведенные ниже. Примечание Любые параметры установки для порта, задаваемые командой stty, действуют только до тех пор, пока рассматриваемый порт открыт. Например, если вы хотите изменить скорость передачи tty2a, а tty2a не "открыт", то сначала команда stty открывает порт, далее изменяет параметры установки порта и окончательно закрывает порт. Когда она закрывает порт последний раз, зна- чения параметров установки восстанавливаются к своим первона- чальным значениям. В командах stty позднее в данном разделе используется цикл while для устранения такого поведения ко- манды stty. Если вы выполняете stty перенаправляя вход с </dev/ttyname, то она работает с текущей последовательной ли- нией, которую вы открыли. В этом случае так как последова- тельная линия остается открытой после выдачи команды stty, значения параметров установки сохраняются. Можно отобразить текущие рабочие характеристики последова- тельной линии вводом этой команды с терминала, присоединенного к этой линии: stty Если невозможно подключиться к системе с этого терминала, вы можете использовать другой терминал для отображения характе- ристик. Подключитесь к системе как суперпользователь с другого терминала и введите: Ъ2stty < ttyname - 14-15а - В предыдущей команде ttyname - это имя специального файла устройства, соответствующего последовательной линии (смотрите главу "Оглавления UNIX и специальные файлы устройств"). Напри- мер данная команда отображает текущие характеристики последова- тельной линии с именем /dev/tty1a: - 14-16 - stty < /dev/tty1a Команда отображает скорость передачи, схему четности и другую информацию о последовательной линии. Эта информация объ- ясняется в разделе stty(С) документа User's Reference. Одним из возможных изменений для последовательной линии является изменение скорости передачи. Это обычно делается с терминала, присоединенного к другой последовательной линии, так как изменение скорости нарушает связь между терминалом и систе- мой. Перед тем, как вы изменяете скорость, вам необходимо знать текущую скорость передачи терминала (смотрите руководство по аппаратуре терминала для определения текущей скорости переда- чи). После того, как вы получили скорость передачи, подключи- тесь к системе как суперпользователь с другого терминала и вве- дите: Ъ2(stty Ъ1baud-rate; while:; do sleep 3600; done) < ttyname &, где baud-rate - это текущая скорость передачи терминала, а ttyname - это имя специального файла устройства, соответствую- щего последовательной линии, для которой вы хотите провести из- менения. Скорость передачи должна содержаться в наборе 50, 75, 110, 134, 150, 200, 300, 600, 1200, 2400, 4800 и 9600. Например команда: (stty 9600; while:; do sleep 3600; done) < /dev/tty1a & изменяет скорость передачи последовательной линии /dev/tty1a на 9600. Заметим, что символ "меньше, чем" (<) используется как для отображения, так и для задания параметров последовательной линии с другого терминала. Другим возможным изменением является изменение способа, которым система обрабатывает вход и выход для последовательной линии. Такие изменения обычно делаются с терминала, присоеди- ненного к последовательной линии. Например команда stty tabs приводит к тому, что система расширяет символы табуляции - 14-16а - пробелами (используется терминалами, которые не расширяют сим- волы табуляции) и команда: stty echoeЪ приводит к тому, что система удаляет удаляемый символ с экрана терминала, когда вы используете клавишу <BKSP>. Заметим, что команда stty может также использоваться для адаптации последовательной линии к необычному терминалу, к дру- гому типу последовательного устройства, требующего генерации и регистрации четности или специальной обработки ввода и вывода. Полное описание этой команды содержится в разделе stty(C) документа User's Reference. - 14-17 -  ЗАДАНИЕ ТИПА ТЕРМИНАЛА Системы UNIX требуют, чтобы тип терминала был ясно опреде- лен перед работой с этим терминалом. Предпочтительным методом задания типа терминала является назначение типа переменной TERM, специальной переменной среды, связывающей используемый терминал со списком характеристик, приведенном в файле /etc/termсap. Эти характеристики сообщают системе, как интерп- ретировать клавиши терминала и как отображать данные на экране терминала. Eсли вы используете оболочку Bourne shell (sh), то назначение TERM имеет вид: Ъ2TERM=Ъ1termtype; export Term Если вы используете оболочку С (csh), то назначение TERM имеет вид: Ъ2setenv TERM termtype termtype должно быть одним из имен, связанных с одним из терминалов, определенных в файле /etc/termcap. Назначение долж- но вводиться с терминала, тип которого вы устанавливаете. Например для установки типа терминала "ansi" из оболочки Bourne обратитесь к терминалу, который вы хотите установить, введите подсказку оболочки ("$"): TERM=ansi; export TERM и нажмите клавишу <Возврат>. Из оболочки С введите подсказку ("%")  setenv TERM ansi и нажмите <Возврат>. Если вы не уверены в том, какое имя вы можете использовать для termtype, вы можете просмотреть имена либо отображением файла /etc/termcap, либо чтением страницы руководства terminals (M) документа User's Reference, где перечисляются все терминалы, обеспеченные в файле /etc/termcap. Для отображения самого списка введите: more /etc/termcap и нажмите клавишу <Возврат>. - 14-18 - Вы можете позволить системе определить тип терминала авто- матически, когда вы подключаетесь к системе, включив назначение TERM в файл .profile (смотрите "Изменение файлов .profile и .login" в главе "Запуск и останов системы"). Альтернативный метод задания типа терминала описан в раз- деле tset(C) документа User's Reference. Если вы позволите системе установить тип терминала, следу- ет быть осторожным при подключении к системе на терминалах, ко- торые не относятся к тому же типу, к которому относится ваш обычный терминал. У системы отсутствует способ проверки кор- ректности данного терминала, она предполагает тип терминала, аналогичный вашему обычному терминалу. Если это не так, вам следует установить тип терминала вручную. - 14-19 -  АВТОМАТИЧЕСКОЕ ЗАДАНИЕ ТИПА ТЕРМИНАЛА Если вы хотите, чтобы тип терминала задавался автоматичес- ки во время подключения к системе, выполните следующую процеду- ру: 1. Подключитесь к рассматриваемому терминалу и определите, какое ttyname вы используете, введя: tty 2. Подключитесь как root и редактируйте файл /etc/ttytype текстовым редактором. Измените поле типа терминала для ли- нии, связанной с рассматриваемым терминалом, на необходи- мый вам тип терминала. Учтите модель консоли. Если вы хо- тите, чтобы тип терминала был установлен как wy50 для /dev /tty1a, редактируйте /etc/ttytype следующим образом: wy50 tty1a 3. Далее пользовательский файл запуска должен редактироваться с соответствующей строкой команды tset(C) для автоматичес- кого задания типа терминала. В каждый файл .login пользо- вателя оболочки С добавьте следующую строку: tset -s -q > /tmp/tset$$; source /tmp/tset$$; /bin/rm/tmp/tset$$ Убедитесь в удалении строки команды setenv(C), принимаемой по умолчанию и включающей TERM и TERMCAP из файла .login. В каждом .profile пользователя оболочки Bourne добавьте следующую строку: eval 'tset -s' Убедитесь в удалении имеющейся строки команды tset из фай- ла .profile. 4. Отключите всех пользователей от системы, далее подключи- тесь к системе снова для проверки изменения типа нового терминала. После подключения к системе проверьте новый termtype введя: env - 14-20 -  УДАЛЕНИЕ ТЕРМИНАЛА Время от времени может оказаться необходимым удалить тер- минал из системы, например, если вы хотите заменить его некото- рым другим устройством. Перед тем, как вы можете удалить терми- нал, вы должны отключить его командой disable(C). Для удаления терминала выполните следующие шаги: 1. Выключите питание терминала. 2. Подключитесь к системе как суперпользователь с другого терминала. 3. Используйте команду disable для отключения терминала. Ко- манда имеет вид: Ъ2disable ttyname где ttyname - это имя последовательной линии, к которой присоединен терминал. Например, команда: disable /dev/tty1a отключает терминал, связанный с последовательной линией /dev/tty1a. 4. Отсоедините терминал от системы. Последовательная линия, ранее присоединенная к терминалу, теперь свободна для принятия другого устройства. - 14-21 -  ИСПОЛЬЗОВАНИЕ ПОСЛЕДОВАТЕЛЬНЫХ МУЛЬТИЭКРАНОВ СРЕДСТВАМИ MSCREEN Если вы знакомы с multiscreen(M), средствами, которые обеспечивают множество отдельных экранов login для консоли, то имеется возможность использования аналогичного средства для терминала. Терминалы, которые имеют множество страниц экранной памяти, могут использоваться с разделяемыми экранами, каждый со своим сеансом login, так, как будто у вас имеется несколько терминалов вместо одного. На терминале WYSЕ60 легко может быть сохранено содержимое двух полных экранов активности. Использование третьего экрана для WYSЕ60 обсуждается ниже. Это означает, что использование двух экранов очень похоже на применение более одного терминала. Полная функциональность сессии login обеспечивается для каждого экрана, и ранее выполняемые команды (или их результаты) отобра- жаются на каждом экране, когда он используется. В настоящей статье описывается WYSЕ60, при этом в качестве основы для всех примеров используются две страницы экранной памяти. Вы можете также ограничить число доступных mscreens. Ути- лита mscreen обеспечивает доступ к сессиям набора терминалов, что во многом похоже на операцию logging для более, чем одного терминала. Эти сессии обеспечиваются для "псевдо ttys", а не для устройств tty, обычно используемых терминалами или модема- ми. tty - это специальный файл, связанный непосредственно с от- дельным аппаратным устройством, используемым для связи с обору- дованием, таким как терминалы или принтеры. За tty следует число и буква. Псевдо-tty - это устройство, которое не связано с какой-либо реальной аппаратурой и используется для моделиро- вания функций реального 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. Если у вас имеется какой-либо другой вид модема, то вы можете модифицировать любые исходные файлы и создать в