Опубликован: 12.11.2008 | Доступ: свободный | Студентов: 3586 / 355 | Оценка: 4.31 / 4.35 | Длительность: 19:07:00
Лекция 4:

Управление портами

4.3.1.3. Разрешение монитора порта

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

  1. Выберите enable из меню Port Monitor Management.
  2. Система выводит на экран список тех мониторов портов с соответствующими им pmtag и pmtype, которые в настоящий момент запрещены. Нажмите MARK чтобы отметить порты, которые вы хотите разрешить и нажмите ENTER, чтобы разрешить эти порты. Вы можете нажать CANCEL, если решите этого не делать.
  3. Система разрешает порты и возвращает вас к меню Port Monitor Management.
4.3.1.4. Просмотр информации мониторов портов

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

  1. Выберите list из меню Port Monitor Management.
  2. Система выводит на экран меню со всеми мониторами портов или список конкретного монитора порта, или список конкретного типа монитора порта.
  3. Чтобы вывести на экран мониторы по тегу или типу, вам следует нажать MARK, чтобы отметить эти элементы списка вариантов и нажать ENTER. Чтобы вывести все мониторы выберите опцию all.
  4. Система выводит на экран pmtag, pmtype, флаги, счет перезапуска, состояние и команду для выбранных портов. Нажмите CANCEL, чтобы вернутся к списку мониторов портов.
4.3.1.5. Модификация монитора порта

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

  1. Выберите modify из меню Port Monitor Management.
  2. Система выводит на экран теги и типы существующих мониторов портов. Переместите курсор к тому монитору порта, который вы хотите модифицировать и нажмите RETURN.
  3. Система выдает форму Modify a Monitor. Заполните эту форму и нажмите SAVE, чтобы модифицировать его или нажмите СANCEL, чтобы выйти из формы. Система вновь возвратит вас к форме Modify a Monitor.
4.3.1.6. Удаление монитора порта

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

  1. Выберите remove из меню Port Monitor Management.
  2. Система выводит на экран существующие мониторы портов. Отметьте, нажав MARK те, которые вы хотите удалить и нажмите ENTER, или нажмите CANCEL, если решили не удалять монитор.
  3. Система удалит помеченные порты и возвращается к меню Port Monitor Management.
4.3.1.7. Запуск монитора порта

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

  1. Выберите start из меню Port Monitor Management.
  2. Система выводит на экран список мониторов портов, ожидающих запуска. Нажав MARK, отметьте порты, которые вы хотите запустить, и нажмите ENTER, или нажмите CANCEL, если вы решили этого не делать.
  3. Система запускает помеченные порты и возвращается к меню Port Monitor Management.
4.3.1.8. Остановка монитора порта

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

  1. Выберите stop из меню Port Monitor Management.
  2. Система выводит на экран список мониторов портов, активных в текущий момент. Нажав MARK, отметьте порты, которые вы хотите остановить, и нажмите ENTER, или нажмите CANCEL, если вы решили этого не делать.
  3. Система остановит работу помеченных портов и возвращается к меню Port Monitor Management.

4.3.2. Управление монитором порта с помощью команд shell

Монитор порта ttymon, вызывается с помощью контроллера доступа к сервису (SAC). Он запускается с помощью init, когда система вводит многопользовательский режим. После этого одной из функций SAC является запуск всех тех мониторов портов, конфигурации которых вы создали.

Начиная с UNIX System V, Версия 4, ttymon выполняет функции, которые в предыдущих версиях выполняли getty и uugetty. Так же как getty и uugetty, ttymon устанавливает режимы терминала и скорости линий для порта, к которому подсоединяется пользователь, обеспечивая связь с сервисом, относящимся к этому порту.

ttymon отличается от getty и uugetty по нескольким важным пунктам:

  • ttymon обеспечивает любой сервис, конфигурацию которого вы создаете, getty и uugetty обеспечивает только сервис login ;
  • каждое выполнение ttymon может поддерживать многочисленные порты, getty и uugetty поддерживают и обеспечивают только один порт на выполнение;
  • ttymon яввляется устойчивым процессом, который продолжает прогон и после инициации сервисного процесса. Процессы getty и uugetty были заменены на процесс выполняемого сервиса;
  • ttymon может воспользоваться всеми возможностями STREAMS I/O.
4.3.2.1. Что делает ttymon

У ttymon есть три основные функции:

  • он инициирует и управляет портами TTY;
  • он устанавливает режимы терминала и скорости линии каждого порта, которым управляет;
  • он вызывает сервис, относящийся к данному порту каждый раз, когда получает запрос на соединение с этим портом.

Каждый экземпляр ttymon имеет свой собственный управляющий файл, который указывает порты монитора и сервис, относящийся к каждому порту. Этот файл содержит поле ttylabel, которое относится к определению скорости и TTY в файле /etc/ttydefs. Смотрите ttyadm (1М), чтобы получить описание конкретной информации о ttymon, которая содержится в управляющем файле ttymon.

После запуска монитора порта ttymon, он инициирует все порты, указанные в его управляющем файле, переправляет указанные модули STREAMS в порты, устанавливает значения скорости и исходной termio (7), а также пишет подсказки в порт. Затем он ждет ввода пользователя.

Запрос на соединение бывает успешным, когда по крайней мере один символ, отличный от break-символа, за которым следует символ новой строки будет получен из порта. Если сервис, который должен быть вызван, это сервис login, то символу новой строки будет предшествовать имя регистрации пользователя. Символ новой строки не будет распознан, если скорость линии порта и устройства, подсоединенного к порту, будут совпадать.

Если на терминале будет распечатана несчитываемая подсказка, пользователь посылает BREAK, чтобы указать, что скорости линий порта и устройства не совместимы. Каждое появление разъединения (break) приводит к тому, что ttymon перейдет к следующему ttylabel в /etc/ttydefs, поднастраивая свои значения termio(7) и выдавая подсказку.

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

Монитор ttymon не имеет взаимосвязи с портами TTY, когда они подсоединяются к сервису. После завершения выполнения сервиса в порте, ttymon возвращает порт в его исходное состояние.

4.3.2.2. Опция автонастройки скорости

Автонастройка скорости позволяет системе утанавливать скорость линии заданного порта TTY в соответствии со скоростью линии того средства, которое подсоединено к этому порту, без вмешательства пользователя. Каждый раз, когда добавляется сервис, управление которого осуществляется с помощью монитора ttymon, должно быть обеспечено ttylabel (см. "Добавление сервиса").

Если это ttylabel указывает на элемент в файле /etc/ttydefs, который имеет A в поле автонастройки скорости, то ttymon попытается определить требуемую скорость линии прежде чем распечатать подсказку.

После получения обнаружения несущей в один из портов TTY, но до начала распечатки подсказки, ttymon выполняет следующее:

  1. ttymon считывает следующий символ, полученный из порта. Узнав, что считанный символ является символом новой строки и что он передан со скоростью линии, которую может поддержать автонастройка скорости, ttymon точно определит эту скорость линии и изменит скорость линии порта на эту скорость;
  2. если скорость передачи невозможно определить по символу, который считан (если пользователь, например, ввел символ, отличный от символа новой строки), или если вместо символа получено разъединение, то ttymon считает, что произошел сбой автонастройки и символ отбрасывается. Если после пяти попыток, символ новой строки не распознан, поиск переходит к следующему элементу ttydefs в последовательности поиска. Если вновь возникает флаг автонастройки скорости, подсказка не будет записана, и описанная процедура просто повторяется. Если флаг автонастройки скорости не установлен, поиск вновь переходит к следующему элементу ttydefs в последовательности поиска (hunt).