Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
4.3. Управление мониторами портов
4.3.1. Управление мониторами портов с помощью меню.
4.3.1.1. Добавление монитора порта.
4.3.1.2. Запрещение монитора порта.
4.3.1.3. Разрешение монитора порта.
4.3.1.4. Просмотр информации мониторов портов
4.3.1.5. Модификация монитора порта
4.3.1.6. Удаление монитора порта.
4.3.1.7. Запуск монитора порта
4.3.1.8. Остановка монитора порта
4.3.2. Управление монитором порта с помощью команд shell
4.3.2.1. Что делает ttymon.
4.3.2.2. Опция автонастройки скорости
4.3.2.3. ttymon и средство доступа к сервису
4.3.2.4. Конфигурация ttymon по умолчанию
4.3.2.5. Команда ttyadm
4.3.2.6. Просмотр информации с помощью команд
4.3.2.7. Доступ к портам TTY
4.3.2.8. Добавление монитора порта ttymon с помощью команд
4.3.2.9. Удаление монитора порта ttymon c помощью команд
4.3.3. Распечатка, инсталяция и замена командных файлов конфигурации
4.3.3.1. Командные файлы конфигурации системы
4.3.3.2. Командные файлы конфигурации мониторов портов
4.3.4. Считывание управляющих файлов
4.3.4.1. Справочник по управлению мониторами портов.
Управляющая модель средства доступа к сервису (SAF) является иерархической. Наивысший уровень связан с администрированием мониторами портов. Нижний уровень связан с администрированием сервиса. На уровне администрирования мониторами портов, мониторы портов можно добавлять, удалять, запускать, разрешать или запрещать. К другим функциям, выполняемым на этом уровне, относятся запрос информации о состоянии монитора порта, замена файла конфигурации системы, инсталяция или замена файла конфигурации монитора порта и запрос о том, что монитор порта считал свой управляющий файл.
В этом разделе описывается, как управлять монитором порта. Управление можно осуществлять, используя доступ к множеству меню System Administration (Администрирование системы), или прямо, используя множество команд ttymon.
4.3.1. Управление мониторами портов с помощью меню
После выбора ports из меню "Администрирование системы" и Port Monitor Management (Управление мониторами портов) из меню "Ports", вы получите следующий экран:
------------------------------------------------------------
Port Monitor Management
------------------------------------------------
add - Add a Port Monitor
disable - Disable a Port Monitor
enable - Enable a Port Monitor
list - List Port Monitor Information
modify - Modify a Port Monitor
remove - Remove a Port Monitor
start - Start a Port Monitor
stop - Stop a Port Monitor
------------------------------------------------------------
Далее описана каждая из этих функций.
4.3.1.1. Добавление монитора порта
Эта функция используется администратором системы или тем пакетом, который устанавливается для создания новых экземпляров монитора порта. Это задание создает монитор порта, оно создает поддерживаемую структуру каталогов в /etc/saf и /var/saf для нового монитора порта pmtaf и управляющего файла монитора порта. Оно также добавляет элемент для нового монитора порта к управляющему файлу SAC.
Вас попросят заполнить нижепреведенную форму, чтобы добавить новый монитор порта:
------------------------------------------------------------
Add a Port Monitor
------------------------------------------------
Port monitor tag:
Port monitor type:
Command to start the port monitor
Version number:
Start port monitor immediately? Yes
Start state: ENABLED Restart count:0
(Optional fields)
File name of the port monitor configuration script:
Comments:
Fill in the form and then press SAVE
------------------------------------------------------------
tag - это уникальный буквенный идентификатор, который идентифицирует конкретный монитор.
type - это вид монитора; например, "listen".
Command - это полное имя команды, которая запускает монитор порта.
Version number относится к номеру версии файла базы данных мониторов портов.
и Start state, и Start immediately fields переключаются с помощью клавиши CHOICE; их значения по умолчанию (ENABLED и Yes) заранее устанавливаются в форму.
Restart count - это число раз, которое монитор порта будет перезапускаться в случае отказа до тех пор, пока не будет помещен в состояние отказа.
optional fields позволяют указывать действия монитора в командном файле и обеспечивать комментарий, относящийся к конкретному монитору.
SAC может настраивать среду каждой сервисной программы, которую он запускает, интерпретируя командный файл конфигурации сервиса при наличии такового, непосредственно перед запуском этой сервисной программы. Также возможно настраивать среду монитора порта ttymon. Командные файлы конфигурации мониторов портов являются необязательными и устанавливаются выбором опции "configuration script" (командный файл конфигурации) при добавлении нового монитора.
Модификации среды, сделанные с помощью файла конфигурации мониторов порта, наследуются монитором порта и всеми сервисными программами, которые он вызывает.
4.3.1.2. Запрещение монитора порта
Монитор порта должен уметь ограничивать доступ к системе, не прибегая к помощи сервиса, который все еще выполняется. Чтобы сделать это, монитор порта должен поддерживать два внутренних состояния: enabled и disabled. Монитор порта запускается в том состоянии, которое указывается переменной среды ISTATE, обеспечиваемой SAC.
Разрешение или запрещение монитора порта влияет на все порты, за которые ответственен этот монитор. Если монитор отвечает только за один порт, влиянию будет подвергаться только этот порт. Если монитор порта отвечает за многочисленные порты, влиянию подвергнутся все эти порты.
Разрешение и запрещение - это динамическая операция: она заставляет монитор порта изменить свое внутреннее состояние. Это действие не распостраняется на новые вызовы монитора порта.
В то же время, разрешение и запрещение - это и статичная опрация: она вызывает изменение в управляющем файле. Действие этого изменения распостраняется и на новые вызовы монитора порта.
Это меню предоставляет список тех мониторов портов, которые разрешаются и позволяют выбирать те, которые следует запретить. SAC посылает сообщение о запрещении в монитор порта.
4.3.1.3. Разрешение монитора порта
Эта функция предоставляет вам список мониторов, запрещенных в текущий момент, и позволяет выбрать те, которые должны быть разрешены. SAC посылает сообщение о разрешении в монитор порта. Если монитор порта в состоянии ENABLED, это значит, что он прогоняется в текущий момент и ждет соединения.
4.3.1.4. Просмотр информации мониторов портов
Это меню позволяет выбирать монитор порта и выводить на экран его информацию.
4.3.1.5. Модификация монитора порта
Эта функция позволяет вам выбрать один из мониторов портов. Когда вы сделаете выбор, отобразится экран "add" с заполненными текущими значениями, и вам можно модифицировать любое поле в форме.
4.3.1.6. Удаление монитора порта
В этом задании отображается список мониторов портов и вам предоставляется возможность выбрать и удалить один или несколько мониторов из списка. Результат этой операции - удаление элемента монитора порта из управляющего файла SAC и повторное считывание SAC файла. Если удаленный монитор порта не прогоняется, никаких дальнейших действий не предпринимается. Если удаленный монитор порта прогоняется, то контроллер доступа к сервису посылает ему SIGTERM, чтобы указать, что он должен завершится. Обратите внимание, что структура каталога этого монитора порта остается нетронутой, но больше к ней не ссылаются.
4.3.1.7. Запуск монитора порта
Если вы делаете выбор не запускать монитор сразу же, вы можете запустить его, выбрав эту опцию меню, или можете использовать команду sacadm, описанную ниже.
4.3.1.8. Остановка монитора порта
Эта функция позволяет останавливать монитор порта, который находится в действии в текущий момент.
4.3.2. Управление монитором порта с помощью команд shell
Монитор порта ttymon, вызывается с помощью контроллера доступа к сервису (SAC). Он запускается с помощью init, когда система вводит многопользовательский режим. После этого одной из функций SAC является запуск всех тех мониторов портов, конфигурации которых вы создали.
Начиная с UNIX System V, Версия 4, ttymon выполняет функции, которые в предыдущих версиях выполняли getty и uugetty. Так же как getty и uugetty, ttymon устанавливает режимы терминала и скорости линий для порта, к которому подсоединяется пользователь, обеспечивая связь с сервисом, относящимся к этому порту.
ttymon отличается от getty и uugetty по нескольким важным пунктам:
4.3.2.1. Что делает ttymon
У ttymon есть три основные функции:
Каждый экземпляр 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 выполняет следующее:
4.3.2.3. ttymon и средство доступа к сервису
Средство доступа к сервису (SAF) обеспечивает общий интерфейс, которому должны подчиняться все мониторы портов. ttymon - это монитор порта под управлением контроллера SAF - контроллера доступа к сервису. (Смотрите "Обзор средства доступа к сервису, "Управление мониторами порта" и "Управление сервисом", где описываются средство доступа к сервису, управляющие файлы, которые он поддерживает, а также команды, используемые для управления мониторами портов и сервисом.)
На рис. 3 показано как вызывается сервис, который может быть и сервисом login, с помощью ttymon.
Вызов сервиса TTY
init
|
|
sac
|
|
ttymon
|
----------------------
| | |
service service service
-------- forked & exec'ed
Рис. 3
Вызовы мониторов портов ttymon могут быть многочисленными, каждый из которых идентифицируется с помощью уникального pmtag. Каждый из этих мониторов портов могут управлять несколькими портами, получающих запросы на соединение.
Любой порт имеет один и только один сервис, связанный с ним. Каждый порт и связанный с ним сервис, идентифицируется тегом сервиса - svctag. Теги сервиса для каждого данного монитора порта - уникальны. Когда контроллер доступа к сервису запускает монитор порта, монитор порта считывает свой управляющий файл, который содержит информацию о том какими портами управлять и какой сервис (то есть процесс) связан с каждым портом.
4.3.2.4. Конфигурация ttymon по умолчанию
Некоторые мониторы портов ttymon могут устанавливаться автоматически, когда система переходит на многопользовательский уровень. Чтобы выяснить, была ли конфигурация системы создана автоматически, введите команду
sacadm -l
после того как система будет в многопользовательском режиме. Чтобы просмотреть список всего сервиса, доступного под управлением мониторов портов ttymon, введите команду
pmadm -l -t ttymon
Модуль линейной дисциплины - ldterm - может быть и не указан в сервисе с автоматически связанной конфигурацией. Вместо этого он может быть определен в управляющем файле autopush ("автоматического проталкивания") и "проталкиваться" при помощи средства "автопроталкивания" (см. autopush (1М)). Autopush "проталкивает" ранее указанные модули в требуемый STREAM каждый раз, когда устройство открыто.
Сервис не определяется для консоли и портов contty под управлением любого из мониторов ttymon. Вместо этого в файле /sbin/inittab есть строка для каждого сервиса. Эти строки содержат обращения к ttymon в режиме "express". (См. "f3ttymon Express").
4.3.2.5. Команда ttyadm
Средство доступа к сервису требует, чтобы каждый тип монитора порта обеспечивал какую-то команду администратора. Эта команда должна форматировать информацию, получаемую из параметров командной строки, в таком виде, чтобы ее можно было включать в управляющие файлы для этого типа монитора порта.
ttyadm является командой администратора монитора ttymon. Команда ttyadm форматирует информацию на основе параметров, по которым она вызывается, и записывает эту информацию в стандартный вивод.
Примечание. Управляющий файл монитора порта обновляется с помощью команд администратора контроллера доступа к сервису sacadm и pmadm. ttyadm обеспечивает средство представления данных конкретного монитора порта (то есть ttymon - specific) этим командам. Командная строка sacadm использует ttyadm только с параметром -V. ttyadm -V сообщает SAC номер версии используемой команды ttymon.
ttyadm - это один из аргументов, которые pmadm использует с параметром -a, чтобы сформатировать информацию для включения в управляющий файл ttymon. ttyadm представляет эту информацию (в виде стандартного вывода) pmadm, который помещает ее в файл. Использование ttyadm описывается ниже под заголовком "Добавление Монитора порта ttymon". Информация pmspecific в управляющем файле монитора порта будет различной для различных типов мониторов.
ttyadm также включается в командную строку sacadm, когда монитор порта добавляется к системе. Она используется, чтобы обеспечить номер версии ttymon для включения его в управляющий файл монитора порта.
4.3.2.6. Просмотр информации с помощью команд
Команда sacadm имеет следующий формат:
sacadm -l [-p pmtag | -t type]
Команда sacadm только с параметром -l просматривает все мониторы портов, определенные для системы в текущий момент, без заголовков. Далее приводится пример ее вывода: swt 2
Пример.
starlan:listen:dx:5:NOTRUNNING:/usr/lib/saf/listen
-m slan# starlan ttymon1:ttymon: :0:ENABLED
:/usr/lib/saf/ttymon # ttymon2:ttymon: :0:ENABLED
:/usr/lib/saf/ttymon #
sacadm можно также использовать для просмотра одного монитора порта (-p) или только мониторов портов одного из типов (-t).
4.3.2.7. Доступ к портам TTY
Чтобы выяснить, к каким портам имеют доступ пользователи, сначала идентифицируйте все разрешенные мониторы портов ttymon, используя команду:
sacadm -l -t ttymon
#sacadm -1 -t ttymon
PMTAG PMTYPE FLGS RCNT STATUS COMAND #
ttymon1 ttymon - 0 ENABLED /usr/lib/saf/ttymon #
ttymon3 ttymon d 0 DISABLED /usr/lib/saf/ttymon #
В данном списке монитор порта ttymon1 - разрешен. Это значит, что он принимает сервисные запросы для всего своего сервиса, который разрешен.
Чтобы определить какие сервисные программы разрешены, используйте
pmadm -l -p ttymon1
Она просматривает все сервисы TTY с созданной конфигурацией для монитора порта ttymon1.
#pmadm -l -p ttymon1
PMTAG PMTYPE SVCTAG FLGS ID <PMSPECIFIC>
ttymon1 ttymon 11 u root /dev/term/11 - -
/usr/bin/login - 9600 - login: - #
ttymon1 ttymon 12 ux root /dev/term/12 - -
/usr/bin/login - 9600 - login: - #
ttymon1 ttymon 13 u root /dev/term/13 - -
/usr/bin/login - 9600 - login: - #
ttymon1 ttymon 14 ux root /dev/term/14 - -
/usr/bin/login - 9600 - login: - #
Разрешенный сервис - тот, который не имеет X в колонке FLGS. Порты, соответствующие этому сервису (/dev/term/11 и /dev/term/13), являются доступными для пользователя.
Примечание. В версии 4.0 UNIX System V команда who -l просматривает все функционирующие мониторы портов, а не порты TTY с доступом. Выполняйте процедуру, описанную выше, чтобы обнаружить порты TTY, к которым есть доступ.
4.3.2.8. Добавление монитора порта ttymon с помощью команд
Формат команды, которая добавляет монитор порта ttymon следующий:
sacadm -a -p pmtag -t type -c cmd -v version
-n [ -f dx ] [-n count] [-y comment] [ -z script ]
Эта команда добавляет строку в управляющий файл SAC.
Командный файл конфигурации мониторов портов можно определить, используя команду с параметрами -g и -z.
Командные файлы конфигурации обычно для базовых операций не требуются.
4.3.2.9. Удаление монитора порта ttymon c помощью команд
Формат команды, удаляющей монитор порта следующий:
sacadm -r -p pmtag
Чтобы внести изменения в элемент монитора порта, всегда удаляйте элемент, а затем добавляйте новый, используя команду sacadm. Не редактируйте управляющий файл SAC.
4.3.3. Распечатка, инсталяция и замена командных файлов конфигурации
Командные файлы конфигурации системы и мониторов портов управляются с помощью sacadm; командные файлы конфигурации сервиса управляются с помощью pmadm и описаны под заголовком "Управление сервисом". Файлы конфигураций системы и мониторов портов позволяют модифицировать среду системы и среду мониторов. Они написаны на интерпретируемом языке, описанном на странице руководства doconfig (3N) и в "Руководстве программиста: сетевые интерфейсы". Примеры командных файлов приводятся ниже.
Командный файл конфигурации системы _sysconfig интерпретируется после запуска SAC. Командный файл конфигурации монитора порта интерпретируется SAC непосредственно перед тем, как SAC запускает этот монитор порта.
Файлы конфигураций системы и мониторов портов может распечатать любой пользователь системы. Но только администратор системы выполнить их инсталяцию или удаление.
4.3.3.1. Командные файлы конфигурации системы
sacadm -G[ -z script]
Командный файл конфигурации системы /etc/saf/_sysconfig настраивает среду для всего сервиса системы. Когда он запускается, контроллер доступа к сервису интерпретирует файл конфигурации системы, используя библиотечную функцию doconfig. Файл _sysconfig по умолчанию, содержащий только строку комментария, является частью поставляемой системы.
Параметр -G используется для распечатки или замены командного файла конфигурации системы. Сам параметр -G распечатывает файл конфигурации системы. В сочетании с -z параметр -G заменяет /etc/saf/_sysconfig на содержимое файла script. Другие сочетания параметров с -G являются не действительными.
На рис. 4 файл _sysconfig устанавливает переменную зоны времени -TZ.
Пример файла конфигурации системы
assign TZ-EST5EDT # set TZ
runwait echo SAC is starting > /dev/console
Рис. 4
Примечание. Параметр -z также используется с параметром -a для указания содержимого файла конфигурации мониторов портов при создании монитора порта.
4.3.3.2. Командные файлы конфигурации мониторов портов
sacadm -g -p pmtag [-z script]
Командный файл конфигурации мониторов портов /etc/saf/pmtag/_config настраивает среду для сервиса, имеющегося в наличии, с помощью специальной совокупности точек доступа, за которую отвечает монитор порта pmtag. Когда SAC запустит монитор порта, при существовании командного файла конфигурации мониторов портов он интерпретируется с помощью библиотечной функции doconfig (3N).
Параметр -g используется для распечатки, инсталяции или замены командного файла конфигурации мониторов портов. Параметр -g требует наличия параметра -p. Только с параметром -p параметр -g распечатывает командный файл конфигурации мониторов портов pmtag. Параметр -g с параметрами -p и -z осуществляют инсталяцию файла script, также как файл конфигурации мониторов портов для монитора порта pmtag, или, если существует /etc/saf/pmtag/_config, он заменяет _config на содержимое script. Другие сочетания параметров с -g - недействительны.
На рис. 5 в гипотетическом файле _config команда /usr/bin/daemon предположительно запускает процесс daemon, который создает и сохраняет мультиплексор STREAMS. После инсталяции этого командного файла конфигурации команда может выполняться как раз перед запуском монитора порта, которому она требуется.
Пример файла конфигурации монитора порта
run /usr/bin/daemon
# build a STREAMS multiplexor.
runwait echo SPMTAG is starting > /dev/console
Рис. 5
4.3.4. Считывание управляющих файлов
sacadm -x[-p pmtag]
Когда изменения внесены в управляющий файл SAC, SAC необходимо уведомить об изменении. Когда изменения внесены в управляющие файлы монитора порта, этот порт монитора необходимо об этом уведомить. Когда для внесения изменений используется sacadm и pmadm, уведомление происходит автоматически. Если вы редактируете файлы прямо, SAC и мониторы портов не уведомляются. sacadm следует вызывать с параметром -x, чтобы уведомить SAC или мониторы портов об изменениях.
sacadm с параметром -x просит SAC обновить свою внутреннюю копию информации в управляющем файле SAC. sacadm с параметрами -x и -p заставляет SAC послать сообщение в указанный монитор порта.
Администраторам системы рекомендуется не редактировать эти файлы прямо.
4.3.4.1. Справочник по управлению мониторами портов
Синтаксис команд |
Описание |
sacadm -a -p pmtag -t type -c"cmd" -v ver[-f dx][-n count]\ [-y"comment"][-z script] |
Добавляет элемент монитора порта в управляющий файл |
sacadm -l[-p pmtag|-t type] |
Распечатывает информацию о состоянии монитора порта |
sacadm -L[-p pmtag|-t type] |
Распечатывает информацию о состоянии монитора порта в сжатой форме |
sacadm -G[-z script] |
Распечатывает или заменяет файл конфигурации системы /etc/saf/_sysconfig |
sacadm -g -p pmtag[-z script] |
Распечатывает или заменяет файл конфигурации мониторов портов /etc/saf/pmtag/_config |
sacadm -e -p pmtag |
Разрешает монитор порта pmtag |
sacadm -d -p pmtag |
Запрещает монитор порта pmtag |
sacadm -s -p pmtag |
Запускает монитор порта pmtag |
sacadm -k -p pmtag |
Останавливает монитор порта pmtag |
sacadm -r -p pmtag |
Удаляет элемент для монитора порта pmtag из управляющего файла SAC |