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








 

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

4.1. Управление средством доступа к сервису (SAF)

4.1.1. Контроллер доступа к сервису
4.1.2. Файл конфигурации системы.
4.1.3. Командные файлы конфигурации мониторов порта
4.1.4. Командные файлы конфигурации сервиса
4.1.5. Управляющий файл SAC
4.1.6. Управляющий файл монитора порта
4.1.7. Установка связи с RS-232

После добавления сетевого сервиса к UNIX System V появились нестандартные методы доступа к сервису системы, давшие непоследовательные интерфейсы и среду выполнения, затрудняющие работу пользователей. SAF (средство доступа к сервису) обеспечивает механизм унифицированного доступа к сервису. Управляющие компоненты этого средства - это команды инсталяции, создания конфигурации и поддержки мониторов порта и сервиса, а также файлов, в которых хранится сервисная информация и информация монитора порта.

Способ управления и организации монитором порта доступа к порту зависит от конкретного монитора порта, а не отдельного компонента SAF. Следовательно, пользователи могут расширять свои системы, разрабатывая и устанавливая свои собственные мониторы порта. Пользователям, которые хотят написать собственные мониторы порта, следует обратиться к книге "Руководство программиста: Сетевые интерфейсы". В этом разделе описание конкретных мониторов порта ограничено теми программами, которые поставляются вместе с системой UNIX, ttymon и "приемником".

С точки зрения SAF сервис - это процесс, который запускается. Ограничений функций, которые предоставляет сервис, не существует.

SAF состоит из управления процессом - контроллера доступа к сервису (SAC), а также двух управляющих уровней, соответствующих двум уровням в поддерживаемой структуре каталогов. Верхний управляющий уровень соотносится с управлением монитором порта, нижний уровень - с управлением сервисом.

SAF состоит из следующих компонентов:

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

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

4.1.1. Контроллер доступа к сервису

Контроллер доступа к сервису (SAC) управляет механизмом обслуживания. Это процесс управления средством доступа к сервису (SAF). SAC запускается с помощью команды init (1M) посредством входа в /sbin/inittab. Его функция - поддерживать мониторы порта системы в состоянии, которое вы указываете. Эти состояния включают: STARTING, ENABLED, DISABLED, STOPPING, NOTRUNNING и FAILED (Монитор порта вводит состояние FAILED, когда SAC не может запустить его после указанного числа попыток).

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

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

SAC:

  • настраивает свою собственную среду;
  • запускает требуемые мониторы портов;
  • опрашивает свои мониторы порта и инициирует процедуры восстановления при необходимости.

При инициации SAC настраивает свою собственную среду запуска командного файла конфигурации системы. Затем он считывает свой управляющий файл, чтобы определить те мониторы портов, которые следует запустить. Для каждого монитора порта, который он запускает, он интерпретирует файл конфигурации этого монитора порта, если таковой существует. Наконец мониторы портов, указанные в управляющем файле (например, ttymon) запускаются.

После запуска мониторов портов SAC периодически опрашивает их для получения информации о состоянии. Параметр командной строки sac (1M), -t, позволяет администратору системы управлять частотой опроса. Когда монитор порта получает запрос о состоянии из SAC, он должен ответить сообщением, содержащим его текущее состояние (например, ENABLED). Если SAC не получит ответа, он предполагает, что монитор порта не запущен. Если монитор порта, который должен прогоняться, остановился, SAC предполагает, что он допустил сбой и предпринимает требуемое действие восстановления.

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

SAC представляет собой административную точку управления для всех мониторов портов, (а, следовательно, для всех портов системы). Команды администратора sacadm (1M) и pmadm (1M) передают запросы в SAC, который в свою очередь устанавливает связь с мониторами портов. Эти запросы включают разрешение запрещенного монитора порта, и тот начинает прием запросов сервиса в свои порты, запуск мониторов портов, которые до этого были остановлены, а также просмотр текущего состояния всех мониторов порта системы.

4.1.2. Файл конфигурации системы

Файл конфигурации системы - /etc/saf/_sysconfig - поставляется пустым. Его может использовать администратор системы, чтобы настроить среду для всего сервиса системы, написав командный файл на интерпретированном языке. Командный файл конфигурации системы интерпретируется контроллером доступа к сервису после запуска SAC. SAC запускается, когда система переходит в многопользовательский режим.

4.1.3. Командные файлы конфигурации мониторов порта

Командные файлы конфигурации мониторов порта (/etc/saf/pmtag/_config) являются необязательными. Они позволяют администратору системы настраивать среду на любой заданный монитор порта и сервис, который есть в наличии, благодаря точкам доступа, за которые этот монитор порта несет ответственность. Командные файлы конфигурации мониторов портов написаны на том же языке, который используется для файлов конфигурации системы.

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

4.1.4. Командные файлы конфигурации сервиса

Файлы конфигурации сервиса позволяют вам настраивать среду для конкретного сервиса. Например, сервис может потребовать каких-то специальных привилегий, которые не доступны обычному пользователю. Используя язык, описанный на странице руководства doconfig (3N), вы можете написать командный файл, который предоставит или ограничит такие специальные привилегии конкретного сервиса, предложенные через конкретный монитор порта.

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

4.1.5. Управляющий файл SAC

Управляющий файл SAC содержит информацию о всех мониторах порта, за которые несет ответственность SAC. Этот файл существует в поставляемой системе. Изначально он является пустым, за исключением одной строки комментария, которая содержит номер версии контроллера доступа к сервису. Администратор системы добавляет мониторы портов к системе, осуществляя вводы в управляющий файл SAC. Эти вводы осуществляются с помощью команды sacadm с параметром -a. Команда sacadm также используется для удаления вводов из управляющего файла SAC.

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

Каждый ввод в управляющий файл SAC содержит следующую информацию:

PMTAG -
уникальный тег, который идентифицирует конкретный монитор порта. Этот тег затем используется контроллером доступа к сервису (SAC) для идентификации монитора порта при всех целях администрирования. PMTAG может включать до 14 буквенных символов;
PMTYPE -
тип монитора порта. В добавок к своему уникальному тегу, каждый монитор порта имеет указатель типа. Указатель типа идентифицирует группу мониторов портов, которые являются различными вызовами одного и того же объекта. ttymon и listen являются примерами действительных типов мониторов портов. Указатель типа используется, чтобы облегчить администрирование групп соответственных мониторов портов. Без указателя типа у вас нет возможности узнать какие теги мониторов портов соответствуют мониторам портов того же типа. PMTYPE может включать до 14 буквенных символов;
FLGS -
флаги, которые определяются в текущий момент, это: d - если запускается, не разрешайте монитор порта; x - не запускайте монитор порта. Если флаг не указывается, предпринимается безусловное действие. Монитор порта запускается и разрешается по умолчанию;
RCNT -
число раз, которое монитор порта может допустить сбой, прежде чем будет помещен в состояние отказа. После того как монитор порта ввел состояние отказа, SAC не будет пытаться повторно его запустить. Если счет не указан при создании ввода, это поле устанавливается на 0. Счет повторного запуска 0 указывает, что монитор порта не следует повторно запускать, если он дает отказ;
COMMAND -
символьная строка, представляющая команду, которая будет запускать монитор порта. Первый компонент символьной строки, сама команда, должен представлять собой полное имя пути.

Рис. 1 показывает содержимое образца управляющего файла SAC так, как он просматривается с помощью команды sacadm. Символ # в конце каждой строки является ограничителем комментария.

	Вывод sacadm -1
	------------------------------------------------------------
	PMTAG   PMTYPE  FLGS  RCNT  STATUS   COMMAND
	starlan listen  -     0     ENABLED  /usr/lib/saf/listen -x
	                                             slan starlan \
	                                         # starlan liatener
	   ttymon1 ttymon  d     0     DISABLED /usr/lib/saf/ttymon
	                                                  # ttymon1
	   ttymon3 ttymon  -     0     ENABLED  /usr/lib/saf/ttymon
	                                              # ports board
	------------------------------------------------------------

Рис. 1

4.1.6. Управляющий файл монитора порта

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

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

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

Запись также должна содержать конкретные данные монитора порта, такие как строку подсказки, которая является значимой для ttymon. В целом, каждый тип монитора порта обеспечивает какую-то команду, которая воспринимает конкретные данные нужного монитора как аргументы и выводит эти данные в форме, соответствующей хранению в файле. Команда ttyadm (1M) делает это вместо ttymon, а nlsadmin (1M) - вместо listen.

Примечание. Если ПО при инсталяции добавляет требуемые вводы сервиса в управляющий файл монитора порта, вам не нужно добавлять ввод в ручную pmadm с параметром -a. Например, при инсталяции совместного использования дистанционных файлов (RFS), пакет ПО устанавливает требуемый сервис при каждом мониторе listen-типа.

Каждый ввод в управляющий файл монитора порта содержит следующую информацию:

SVCTAG -
уникальный тег, который идентифицирует сервис. Этот тег является уникальным только для монитора порта, через который этот сервис становится доступным. Другие мониторы порта могут предложить тот же или другой сервис с тем же самым тегом. Сервис требует наличия и тега монитора порта, и тега сервиса для идентификации его как уникального. SVCTAG может включать до 14 буквенных символов;
FLGS -
флаги с нижеследующими значениями могут быть включены как текущие в это поле:
x - Не разрешайте этот порт. Порт разрешается по умолчанию
u - Создавайте ввод utmp для этого сервиса. Обратите внимание, что мониторы портов могут игнорировать флаг u, если создание ввода utmp для сервиса не соответствует способу, в котором следует вызывать этот сервис. Некоторые программы сервиса не могут запускаться нужным образом, если для них не созданы вводы utmp (например, login);
ID -
значение под которым следует запускать сервис. Значение имеет ту форму имени протокола, в которой оно появляется в /etc/passwd;
PMSPECIFIC -
примерами конкретной информации мониторов порта являются адреса, имя процесса, который должен выполняться или имя программного канала STREAMS, через который устанавливается связь между процессами;
COMMENT -
комментарий, относящийся к элементу сервиса.

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

	#VERSION = value

где value - это целое число, которое представляет номер версии монитора порта.

Номер версии определяет формат управляющего файла монитора порта. Эта строка комментария создается автоматически, когда монитор порта добавляется к системе. Он появляется на строке сам собой до появления элементов сервиса.

На рис. 2 показаны строки из образца управляющего файла ttymon. Обратите внимание, что вся информация в колонке PMSPECIFIC является конкретной информацией для монитора порта ttymon. К примеру, перечень управляющего файла listen будет содержать другое множество элементов в этой колонке. Конкретная информация монитора порта форматируется с помощью команды администратора монитора, в данном примере - командой ttyadm. Команда ttyadm включена как часть команды pmadm, когда она используется с параметром -a.

Рис. 2 показывает содержимое образца управляющего файла ttymon, просматриваемом с помощью команды pmadm. Символ # является ограничителем комментария.

	------------------------------------------------------------
	PMTAG   PMTYPE SVCTAG FLGS ID   PMSPECIFIC
	ttymon3 ttymon 31     ux   root /dev/tarm/31--/usx/bin/login
	                                - 9600-login: -#/dev/tarm/31
	ttymon3 ttymon 32     ux   root /dev/tarm/32--/usx/bin/login
	                                - 9600-login: -#/dev/tarm/32
	ttymon3 ttymon 33     ux   root /dev/tarm/33--/usx/bin/login
	                                - 9600-login: -#/dev/tarm/33
	ttymon3 ttymon 34     ux   root /dev/tarm/34--/usx/bin/login
	                                - 9600-login: -#/dev/tarm/34
	------------------------------------------------------------

Рис. 2

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

4.1.7. Установка связи с RS-232

При подсоединении устройства RS-232 к вашей системе, подключение должно осуществляться из вашего компьютера к этому устройству или прямо (жесткое соединение), или с помощью модема. После установки связи система должна знать какой тип соединения существует и какой тип устройства находится на другом конце связи.

Обычно при подсоединении RS-232 к вашему устройству предполагаются следующие подсказки:

  • кабели RS-232 должны иметь длину менее 16 метров. Кабели, длина которых превышает 16 метров, могут привести к помехам на линии. В некоторых случаях, вы можете использовать более длинный кабель, если сократите скорость передачи (в бодах);
  • обычно требуется линейный адаптер, называемый адаптер нулевого модема, если терминал или компьютер подсоединяется прямо к последовательному порту вашего компьютера;
  • нулевой модем не следует использовать, если вы подсоединяете модем к своему компьютеру.

Средство "Быстрая установка терминала" является быстрым методом добавления или удаления терминала из порта. Оно доступно через меню "Мониторы портов" или "Сервис портов" как в основных, так и в расширенных системах.

Если порт не поддерживается драйвером, основанном на STREAMS, система использует команду getty для создания конфигурации порта. Если порт поддерживается драйвером, основанном на STREAMS, система использует для порта команду ttymon.

4.2.1. Добавление терминала к порту

Необходимая информация

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

  • номер порта, к которому будет добавляться терминал;
  • скорость порта, требуемая для терминала.

4.2.2. Добавление терминала с помощью меню

Эта опция может использоваться при добавлении терминала для плат IPC, волоконно-оптических станций и графических рабочих станций. Чтобы добавить терминал к порту, сначала выберите quick_terminal из меню "Мониторы портов" и "Сервис портов". Затем выберите add из меню "Быстрая установка терминала". Система отобразит экран "Быстрая установка терминала":

	------------------------------------------------------------
	     Quick Terminal Setup
	-------------------------------------
	     Port Number(s):  /dev/tty01s
	          .
	          .
	          .
	     Speed:  9600
	------------------------------------------------------------

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

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

4.2.3. Удаление терминала из порта

Удаление терминала с помощью меню

Опция "Удалить терминал из порта" ("Remove a Terminal from a Port") удаляет терминал из порта. Если конфигурация порта создана с терминалом, а вы хотите заново присвоить его модему или какому-то другому устройству, вам не нужно использовать опцию "Remove a Terminal from a Port" прежде чем переконфигурировать порт.

Примечание. Если к машине был добавлен второй последовательный порт, опция "Remove a Terminal from a Port" освобождает прерывание второго порта. Это также приведет к необходимости перестроить ядро системы и дать подсказку о перезагрузке.

Чтобы удалить терминал из порта, выберите quick_terminal из меню "Мониторы портов" и "Сервис портов", а затем выберите remove из меню "Quick Terminal Setup" ("Быстрая установка терминала"). Система отбразит экран :

	------------------------------------------------------------
	     Quick Terminal Removal
	-------------------------------------
	     Port Number(s):  /dev/tty01s
	
	------------------------------------------------------------

Введите правильную информацию и нажмите SAVE, чтобы удалить терминал.

Управляющая модель средства доступа к сервису (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 посылает сообщение о запрещении в монитор порта.

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

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 выполняет следующее:

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

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

Верхний уровень Средства доступа к сервису связан с управлением мониторов портов и рассматривается в главе с заголовком "Управление мониторами портов" выше. Нижний уровень связан с управлением сервисом и рассматривается в этой главе.

На этом уровне есть две отчетливые управляющие функции. Первая - само управление портом как таковое. Информацию, необходимую для осуществления управления портом можно будет найти на странице руководства команды конкретного монитора порта ttymon - ttyadm (1M). Информацию необходимую для осуществления управления адресом сети, управляемом монитором порта listen, можно будет найти на странице руководства для команды конкретного монитора порта listen - nlsadmin (1M).

Вторая - управление сервисом, связанного с портом. По определению есть один и только один сервис, связанный с портом. Все порты в системе являются равными и весь их сервис управляется через один и тот же интерфейс команд, команду администратора средства доступа к сервису pmadm (1M). На уровне управления сервисом можно дополнять, удалять, разрешать или запрещать. Другие функции, выполняемые на этом уровне, включают инсталяцию или замену командного файла конфигурации и запрашивание информации о состоянии сервиса.

4.4.1. Управление сервисом с помощью меню

После выбора ports из меню System Administration (Управление системой) и Port Service Management (Управление сервисом портов) из меню Ports, вы получите следующий экран:

	             3 Port Service Management
	             --------------------------------------------
	             add      - Add a Port Service
	             disable  - Disable a Port Service
	             enable   - Enable a Port Service
	             list     - Modify a Port Service Information
	             modify   - Modify a Port Service
	             remove   - Remove a Port Service

4.4.1.1. Добавление сервиса портов

  1. Выберите add из меню Port Service Management.
  2. Вы можете или добавить сервис к конкретному порту, или добавить сервис ко всем мониторам портов конкретного типа. Если вы выберите первое, система выведет на экран теги и типы мониторов портов, а если вы выберите последнее - система выведет на экран действительные типы мониторов портов.
  3. Переместите курсор к тому элементу, который вы хотите выбрать и нажмите PRESS. В другом случае вы получите на экране следующую форму:
	            6 Add Port Services to Port Monitor
	
	            -----------------------------------------------
	            Service tag:
	            Service Invocation Identity:
	            Port/Service State:
	            utmp entry to be created for this service?
	            version number:
	
	            (optional fields)
	            File name of the port service confic script
	
	            comments:
	
	            Fill in the form and then press
	            SAVE
	            to continue on page 2.
	
	            Full command line to generate port specific
	            information on stdount:
Service tag -
это уникальный тег, который идентифицирует сервис. Тег может состоять из 14 буквенно-цифровых символов и должен быть уникальным в пределах монитора порта;
Service Invocation Identity -
это поле, представляющее значение под которым запускается сервис. Оно должно ббыть в такой форме имени регистрации, в которой оно появляется в /etc/passwd;
Port/Service State -
поля utmpfield и port/service state переключаются с помощью клавиши CHOICE. Их значения по умолчанию (ENABLED и Yes) устанавливаются в форму заранее. Если вы решите создать элемент utmp, то этот процесс показан при вводе с клавиатуры команды who.
Comment -
этот комментарий будет выведен на экран после запроса информации о сервисе порта.

4.4.1.2. Запрещение сервиса портов

  1. Выберите disable (запретить) из меню Port Service Management.
  2. Система выводит на экран svtag, pmtag и pmtype портов, которые не запрещены. Пометьте с помощью MARK те порты. которые вы хотите запретить и нажмите RETURN.
  3. Система запрещает выбранные порты и возвращает вас в меню Port Service Management.

4.4.1.3. Разрешение сервиса портов

  1. Выберите enable (разрешить) из меню Port Service Management.
  2. Система выводит на экран svtag, pmtag и pmtype портов, которые не запрещены. Пометьте с помощью MARK те порты. которые вы хотите разрешить и нажмите RETURN.
  3. Система разрешает выбранные порты и возвращает вас в меню Port Service Management.

4.4.1.4. Просмотр сервиса портов

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

4.4.1.5. Модификация сервиса портов

  1. Выберите modify (модифицировать) из меню Port Monitor Management.
  2. Система выведет на экран svtag, pmtag, pmtype сервиса, имеющегося в наличии. Переместите курсор к тому сервису, который вы хотите модифицировать и нажмите RETURN. Если тип монитора - ttymon, то система выведет на экран следующую форму:
    	          4 Modify Port Service
    	          --------------------------------------------
    	
    	          Service tag:
    	          Port monitor tag:       Type:
    	
    	          Port/Service state:              Create utmp:
    	          TTYlabel:               Timeout:
    	          TTY line options:
    	              Hangup:                    Connect-on-Carrier:
    	              Bidirectional:      Wait-read:
    	          Service invocation identity:
    	          Name of TTY device:
    	          Service command:
    	          Prompt message:
    	          Disabled response message:
    	          Comments:
    
  3. Система выводит на экран следующую форму, если тип монитора портов - listen:
    	          4 Modify Port Service
    	          -------------------------------------------------
    	
    	          Service tag:
    	          Port monitor tag:        Type:
    	
    	          Port /Service state:           Greate utmp:
    	          Service type:
    	          Full kommand line OR name of a STREAMS pipe:
    	
    	          Modules to be pushed:
    	          Servers private address:
    	          Comments:
    
    Service type -
    "Приемник" (listener) обеспечивает две сервисные программы. Он может или порождать сервис, или передавать описатель файла в обслуживающее устройство. Если указан сервис порождающий, то "приемник" будет вызывать сервис, указанный в командном файле. В другом случае описатель файла, созданный для установления соединения, будет передан по программному каналу, указанному в следующем поле, в обслуживающее устройство;
    modules -
    это список имен "проталкиваемых" модулей, отделенных запятыми. После "выталкивания" (popping) всех модулей уже в поток, модули "проталкиваются" в том порядке, в котором они указаны;
    Servers private address -
    это тот адрес, которым будет управлять "приемник" от имени сервиса. Приемник будет диспетчеризировать все вызовы этого адреса прямо в указанный сервис. Адрес должен быть действительным и неиспользуемым;
    Comment -
    этот комментарий будет выведен на экран после запроса информации о сервисе портов.
  4. Заполните форму и нажмите SAVE. Система модифицирует сервис и возвращает вас в предыдущее меню.

4.4.1.6. Удаление сервиса портов

  1. Выберите опцию remove (удалить) из меню Port Monitor Management.
  2. Система выводит на экран svtag, pmtag, pmtype сервиса, имеющегося в наличии. Пометьте MARK тот сервис, который вы хотите удалить и нажмите RETURN.
  3. Система удаляет помеченный сервис и возвращается в меню Port Service Management.

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

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

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

	pmadm -a -p pmtag -s svctag -i  id[-f  ux]  -v'ttyadm -V'\
		-m"'ttyadm[-b][-r count][-c][-h]\
		[-i msg][-m modules][-p prompt][-t timeout]\
		-d device -l ttylabel -s service'"[-y comment]\
		[-z script]

Параметр ttyadm -m можно использовать для "проталкивания" модулей STREAMS, например, модуля линейной дисциплины ldterm. Если средство autopush "протолкнуло" модули в поток, ttymon "выталкивает" их, прежде чем "втолкнет" свои собственные.

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

Нижеприводимая команда определяет сервис, который разрешает как входящие, так и выходящие вызовы. Сервис установлен под управлением монитора порта ttymon2. Параметр -b определяет порт как двунаправленный.

	pmadm -a -p ttymon2 -s 21 -i root -fu -v'ttyadm -V'\
		-m "'ttyadm -b -h -r0 -t 60 -d/dev/tty00\
		-l 9600H -s /usr/bin/login -p\"tty00:\"'"

Параметр -r ttyadm со счетчиком равным нулю допускается, когда используется двунаправленный параметр ttyadm -b; следовательно, -r0 можно опустить.

4.4.2.2. Настройка сервиса с помощью файлов конфигурации

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

Файлы конфигурации инсталируются с помощью команды pmadm с параметрами -g и -z.

4.4.2.3. Удаление сервиса

Формат команды удаления сервиса следующий:

	pmadm -r -p pmtag -s svctag

4.4.2.4. Разрешение сервиса

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

	pmadm -e -p pmtag -s svctag

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

	pmadm -l -t ttymon

Эта команда просматривает весь сервис, определенный для портов ttymon - типа.

Затем найдите в колонке PMSPECIFIC файл устройства, который соответствует порту, интересующему вас; например, /dev/tty00. Если монитором порта является ttymon2, а тег сервиса 23, команда

	pmadm -e -p ttymon2 -s 23

разрешит сервис в порту /dev/tty00.

Чтобы проверить разрешен ли порт, введите

	pmadm -l -p ttymon2 -s 23

"X" будет удален из колонки FLGS ранее в элементе для этого сервиса.

4.4.2.5. Запрещение сервиса

Команда запрещения сервиса имеет следующий формат:

	pmadm -d -p pmtag -s swctag

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

	pmadm -d -p ttymon2 -s 23

восстанавливает "X" в поле FLGS в строке для сервиса 23.

4.4.2.6. Запрещение всего сервиса, управляемого монитором портов ttymon

Команда запрещения всего сервиса, управляемого монитором портов ttymon, имеет следующий формат:

	sacadm -d -p pmtag

Команда

	sacadm -e -p ttymon2

вновь разрешает монитор портов ttymon2.

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

Команда pmadm имеет следующий формат:

	pmadm -l [-p pmtag | -t type][ -s swctag]

Только с параметром -l команда pmadm перечисляет все сервисы для всех мониторов портов системы. Если монитор портов указан (-p), то для такого монитора будут перечислен весь сервис.

Просмотр включает устройство (например, /dev/tty00), сервис который должен быть вызван (/usr/bin/login) и подсказку (login:).

4.4.2.8. Управление сервисом с помощью ttymon "Express"

Для пульта управления и портов contty сервис не определяется под управлением любого монитора порта ttymon. Вместо него для каждого из них в файле /sbin/inittab есть элемент. Эти элементы содержат обращения к ttymon в режиме "express". ttymon express - это специальный режим ttymon, который позволяет вызывать ttymon прямо с помощью команды, которая требует сервиса login. ttymon в режиме express не управляется контроллером доступа к сервису, он не находится в управляющем файле, связанным с любым вызовом ttymon в этом режиме.

4.4.3. Распечатка, инсталяция и замена командных файлов конфигурации сервиса

	pmadm -g -p pmtag -s svctag [-z script]
	pmadm -g -s svctag -t type -z script

Командные файлы конфигурации сервиса - это командные файлы, написанные на интерпретируемом языке, описанном на странице руководства doconfig (3N) и в "Руководстве программиста. Сетевые интерфейсы". Они позволяют вам модифицировать среду, в которой функционирует сервис. Например, значения переменных среды могут изменяться, модули STREAMS можно указывать или можно прогонять команды.

Командные файлы конфигурации сервиса интерпретируются монитором портов до вызова сервиса.

Примечание. SAC интерпретирует как свой собственный файл конфигурации - sysconfic, так и файлы конфигурации мониторов портов. Только файлы конфигураций сервиса интерпретируются с помощью мониторов портов.

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

Параметр -g ипользуется для распечатки, инсталяции или замены командного файла конфигурации сервиса. Парметр -g вместе с параметрами -p и -s распечатывает командный файл конфигурации сервиса для сервиса svstag, доступный с помощью мониторов портов pmtag. Параметр -g с параметрами -p, -s и -z выполняет инсталяцию файла конфигурации сервиса, содержащегося в файле script, когда файл конфигурации сервиса для сервиса svctag доступен с помощью монитора портов pmtag. Параметр -g с параметрами -s, -t и -z выполняет инсталяцию файла script, когда файл конфигурации сервиса для сервиса svctag доступен с помощью любого монитора портов типа type. Все другие сочетания параметров с параметром -g - недействительны.

Следующий командный файл конфигурации сервиса делает две вещи: он указывает максимальный размер для файлов, создаваемых процессом, путем установки ulimit процесса 4096. Он также указывает маску защиты, накладываемую на файлы, создаваемые процессом, путем установки umask со значением 077.

В примере показан образец командного файла конфигурации сервиса.

Пример.

	runwait ulimit 4096
	runwait umask  077

4.4.4. Справочник управления сервисом

Синтаксис команды Описание
pmadm -a [-p pmtag|-t type] -s svctag -i id -m "pmspecific"\ -v ver [-f xu] [-y "comment"] [-z script] Добавляет элемент сервиса в управляющий файл мониторов портов.
pmadm -l [-t type|-p pmtag] [-s svctag] Распечатывает информацию о состоянии сервиса.
pmadm -L [-t type|-p pmtag] [-s svctag] Распечатывает информацию о состоянии сервиса в сжатом виде.
pmadm -g -p pmtag -s svctag [-z script] Распечатывает, выполняет инсталяцию или заменяет файл конфигурации сервиса для сервиса svctag, связанным с монитором портов pmtag.
pmadm -g -s svctag -t type -z script Выполняет инсталяцию или заменяет файлы конфигурации сервиса для всего сервиса svctag, связанного с мониторами портов типа type.
pmadm -e -p pmtag -s svctag Разрешает сервис svctag, связанного с монитором портов pmtag
pmadm -d -p pmtag -s svctag Запрещает сервис svctag, связанный с монитором портов pmtag
pmadm -r -p pmtag -s svctag Удаляет элемент сервиса svctag из управляющего файла мониторов портов

4.4.5. Файл протоколирования

Когда один порт управляется несколькими процессами, часто возникают проблемы. Если порт (например, /dev/tty00) используется разрешенным сервисом под управлением монитора портов ttymon, функционирующего под управлением средства доступа к сервису, и этот порт также управляется процессом ttymon, функционирующего в режиме express ttymon, (т.е., запущен с помощью init, когда считывается inittab, а не SAC, когда считывается его административный файл), то поведение порта станет непредсказуемым. Предполагается, что Вы проверяете систему на наличие таких портов с неоднозначной конфигурацией. lin Существует также два файла протоколирования (log file), которые можно проверить на наличие ключей к решению проблем и к портам, управляемым мониторами портов ttymon: контроллер доступа к сервису протоколирует аберрантное поведение мониторов портов в /var/saf/_log; и каждый монитор портов ttymon имеет свой собственный файл протоколирования /var/saf/pmtag/log, где он регистрирует сообщения, которые получает из SAC, сервиса, который запускает и т.д.

Команда

	tail -25 /var/saf/_log

просматривает самые последние 25 введенных элементов в файле _log.

Файлы протоколирования следует периодически очищать и усекать. Если вы хотите, чтобы cron выполнила очистку, добавьте требуемую команду в файл /var/spool/cron/crontabs/root.

Установка скорости и терминала для портов TTY определяются в управляющем файле /etc/ttydefs. Этот файл можно модифицировать с помощью команды или выбора Ports из меню System Administration.

4.5.1. Установка портов tty с помощью меню

Если вы выберете tty-settings из меню Ports, система выдаст экран, дающий вам возможность добавлять, модифицировать или удалять установки tty из системы.

4.5.1.1. Добавление установки tty с помощью меню

Если вы выбираете опцию add, система выдаст вам следующую форму, которую надо заполнить (показаны значения по умолчанию):

		Create TTY Line Settings and Hunt Sequences
	--------------------------------------------------------
		Ttylabel:
		Enable autobaud? No
		Baud rate:
		Nextlabel:
		Initial line settings:
			hupcl  erase ^h
	
	Final line settings
			sane ixany hupcl tab 3 erase ^h
	
	Fill in the form and press [SAVE]

ttylabel - это необязательная метка, используемая для идентификации конкретной устанавливаемой линии.

Autobaud - это параметр скорости передачи линии. Когда autobaud используется вместо установки скорости передачи, ttymon определяет скорость линии порта TTY, анализируя первый из введенных символов "возврат каретки", и устанавливает скорость в соответствии с этим.

Baud rate - это скорость линии.

nextlabel - это имя еще одной установки линии, которая используется, если текущая установка не обеспечивает совместимую скорость линии пользователю (выявленную, если пользователь посылает BREAK). Серия скоростей часто связывается вместе таким способом в замкнутое множество, носящее название последовательности замкнутого поиска (hunt). Например, 4800 может связываться с 1200, которая в свою очередь связывается с 2400, которая, наконец, связывается с 4800.

Initial and Final line settings поддерживают любые параметры termio (7), которые применяются в линии.

Показанные поля флагов имеют следующие значения:

hupcl -
Сброс при замкнутой последовательности.
sane -
Составной флаг, который стоит вместо множества нормальных характеристик линии.
ixany -
Позволяет любому символу перезапустить вывод. Если этот флаг не указан, DC1 (CTL-Q) будет перезапускать вывод.
tab3 -
Посылает метки табуляции терминалу в виде пробелов.
erase ^h -
Устанавливает символ стирания на ^h. В большинстве терминалов ^h - это реверс.
echoe -
Эхо - стирание символа в виде символьной строки
реверс - пробел - реверс.
В большинстве терминалов так будет стираться стертый символ.

4.5.1.2. Просмотр установок tty с помощью меню

Если вы выберете опцию List Line Settings из меню установок tty, система выдаст прокручиваемый список всех последовательностей hunt. Список будет от каждой ttylabel до соответствующей ей nextlabel. Если вы выберете установку из списка, вы получите детальное описание следующего вида:

		Detailed Line Settings for TTY Label <label>
	----------------------------------------------------------
		Ttylabel:
		Initial Flags:
	
		Final Flags:
		Autobaud:
		Nextlabel:
	
	flag           meaning
	.                .
	.                .
	.                .

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

4.5.1.3. Удаление установки линии с помощью меню

Когда вы выберите опцию Remove Line Setting, вы также получите список существующих меток и следующих меток. Выбор метки для удаления по новому свяжет последовательность hunt.

4.5.2. Установка tty с помощью команды ttydefs

/etc/ttydefs - это управляющий файл, используемый ttymon. Он определяет установки скорости и терминала для портов TTY. Файл ttydefs содержит информацию, перечисленную ниже. Далее показана связь между полями ttylabel и nextlabel в управляющих файлах ttymon и файлах ttydefs. Образец файла ttydefs:

"ttylabel" -
Когда монитор ttymon инициирует порт, он в файле ttydefs ведет поиск элемента, который содержит установки termio (7) для этого порта. Правильный элемент тот, чья ttylabel соответствует ttylabel для этого порта. ttylabel для порта является частью информации, включенной в управляющий файл монитора ttymon. По соглашению ttylabel идентифицирует скорость передачи, но делать это не надо.
initial-flags -
Содержит параметры termio (7), на которые первоначально устанавливается терминал. initial-flags должны указываться с помощью синтаксиса, распознаваемого командой stty (1).
final-flags -
Содержит параметры termio (1), установленные монитором ttymon после подачи запроса на соединение и непосредственно перед вызовом сервиса порта. Конечные флаги должны указываться с помощью синтаксиса, распознаваемого stty.
autobaud -
Это параметр скорости линии. Когда используется автоматическая настройка скорости передачи вместо установки скорости передачи, ttymon определяет скорость линии порта TTY, анализируя первый из введенных возвратов каретки, и в соответствии с этим устанавливает скорость. Если поле autobaud содержит символ A, то средство автоматической настройки скорости разрешается. В противном случае - автоматическая настройка запрещается.
nextlabel -
Если пользователь устанавливает (послав BREAK), что текущий элемент ttydefs не обеспечивает совместимую скорость линии, ttymon будет вести поиск элемента ttydefs, чья ttylabel соответствует полю nextlabel. ttymon затем будет использовать это поле в качестве поля ttylabel. Серия скоростей часто таким образом связывается вместе в замкнутое множество, носящее название последовательности hunt. Например, 4800 можно связать с 1200, которая в свою очередь связывается с 2400, которая наконец связывается с 4800.

Все установки termio (7), поддерживаемые командой stty, поддерживаются как параметры в файле ttydefs. Например, вы сможете указать стирание по умолчанию и символы завершения.

4.5.2.1. Установка линий tty с помощью команды sttydefs

sttydefs (1M) - это команда администратора, которая обслуживает файл ttydefs. Файл ttydefs содержит информацию об установках линий и последовательностях hunt для портов TTY системы. Команда sttydefs вместе с файлом ttydefs обеспечивает средства управления режимами терминала и установками линий. Команда sttydefs используется для:

  • распечатки информации, содержащейся в ttydefs;
  • добавления записей для портов терминала в файл ttydefs;
  • удаления записей из файла ttydefs.

4.5.2.2. Просмотр информации об установке линии терминала

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

	/usr/sbin/sttydefs -l [ttylabel]

Если ttylabel указаны, sttydefs распечатывает запись ttydefs, которая соответствует этой ttylabel. Если ttylabel не указана, sttydefs распечатывает эту информацию для всех записей в файле /etc/ttydefs. sttydefs проверяет, что каждый отображаемый ею элемент - правильный, и что поле nextlabel элемента относится к существующей ttylabel. Для каждого выявленного недействительного элемента распечатывается сообщение об ошибке.

4.5.2.3. Добавление записей в файл ttydefs

	/usr/sbin/sttydefs -a ttylabel [-b] [-n nextlabel]\
		[-i initial-flags] [-f final-flags]

sttydefs с параметром -a добавляет запись в файл ttydefs. ttylabel идентифицирует запись. Далее описывается действие параметров -b, -n, -i или -f, когда они используются с параметром -a. Параметр -a является действительным только тогда, когда вызывается привилегированным пользователем.

Параметр -b разрешает автоматическую настройку скорости передачи.

Параметр -n указывает значение, используемое в поле nextlabel. Если nextlabel не указано, sttydefs будет устанавливать nextlabel на ttylabel.

Параметр -i указывает значение, используемое в поле initial-flags. Аргумент этого параметра должен быть представлен в формате, распознаваемом командой stty. Если initial-flags не указан, sttydefs будет устанавливать initial-flags на флаг termio (7) 9600.

Параметр -f указывает значение, используемое в поле final-flags. Аргумент параметра -f должен быть представлен в формате, распознаваемом командой stty. Если final-flags не указаны, sttydefs будет устанавливать final-flags на флаги структуры termio (7) 9600 и sane.

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

	sttydefs -aNEW -nNEXT -i"1200 hupcl erase ^h"\
		-f"1200 sane ixany hupcl erase ^h echoe"

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

300-19200 Скорость передачи линии.
hupcl Сброс при замкнутой последовательности.
sane Составной флаг, который стоит вместо множества нормальных характеристик линии.
ixany Позволяет любому символу перезапускать вывод. Если этот флаг не указан, только DC1 (CTL-Q) будет перезапускать вывод.
tab3 Посылает метки табуляции терминалу в виде пробелов.
erase ^h Устанавливает символ стирания ^h (CTL-h). В большинстве терминалов ^h это реверс.
echoe Эхо - стирание символа как символьной строки реверс-пробел-реверс. В большинстве терминалов так будет стираться стертый символ.

4.5.2.4. Создание последовательности hunt с помощью команды

Нижеприводимая последовательность команд добавляет записи с метками 1200, 2400, 4800 и 9600 в файл ttydefs и помещает их в замкнутый список или последовательность hunt. В приводимом примере поле nextlabel каждой строки является ttylabel следующей строки. Поле nextlabel для последней приводимой строки вновь указывает на первую строку в последовательности.

Целью последовательности hunt является связывание диапазона скоростей линии. Ввод BREAK в ходе поиска скорости передачи приводит к тому, что ttymon переходит к следующему элементу в последовательности. Поиск продолжается до тех пор, пока скорость передачи не будет соответствовать скорости терминала пользователя.

	sttydefs  -a1200 -n2400 -i 1200 -f "1200 sane"
	sttydefs  -a2400 -n4800 -i 2400 -f "2400 sane"
	sttydefs  -a4800 -n9600 -i 4800 -f "4800 sane"
	sttydefs  -a9600 -n1200 -i 9600 -f "9600 sane"

Файл ttydefs, содержащий эти записи, будет выглядеть так:

	# VERSION-1
	
	1200:1200:1200: sane::2400
	2400:2400:2400: sane::4800
	4800:4800:4800: sane::9600
	9600:9600:9600: sane::1200

4.5.2.5. Удаление записей из файла ttydefs

	/usr/sbin/sttydefs -r ttylabel

Запись для ttylabel, указанной в командной строке, удаляется из файла ttydefs.

Параметр -r является действительным, если вызывается привилегированным пользователем.

Примечание. Если запись, которую вы удаляете, является частью последовательности замкнутого поиска (hunt), обязательно исправьте последовательность. Может оказаться кстати запуск sttydefs с параметром -l, после того как запись будет удалена sttydefs -l будет проверять на наличие неправильных значений полей и разъединенных последовательностей hunt и распечатает сообщения об ошибках.

4.5.2.6. Установка параметров терминала с помощью команды stty

Команду stty (1) можно использовать для установки и изменения параметров терминала после регистрации пользователя. Командная строка stty может быть добавлена к файлу profile пользователя, чтобы можно было устанавливать параметры автоматически как часть процесса login. Ниже приводится пример простой команды stty:

Пример.

	stty cr0 nl0 echoe -tabs erase ^h

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

cr0 Отсутствие задержки на возврат каретки или новой строки. Задержки не используются в видеотерминале, но необходимы на некоторых печатающих терминалах, давая время привести в движение механические части оборудования.
echoe Стирает символы при реверсе.
-tabs Расширяет метки табуляции пробелами при печати.
erase ^h Изменяет символ удаления символа на ^h. Символ удаления символа по умолчанию - это знак #. Большинство терминалов передают ^h после нажатия клавиши возврата каретки.

4.5.3. Справочник установки ttymon и линии терминала

Синтаксис команды Описание
sacadm -l [-t type|-p pmtag] Просматривает все мониторы портов (один -l), все мониторы портов заданного типа (-t type) или один монитор портов (-p pmtag).
pmadm -l [-t type|-p pmtag][-s svctag] Просматривает весь сервис для всех мониторов (один -l), весь сервис для всех мониторов портов заданного типа (-t type), весь сервис конкретного монитора (-p pmtag) или один сервис (-s svctag).
sacadm -a -p pmtag -t ttymon -c cmd -v 'ttyadm -V' Добавляет монитор портов ttymon. ttymon, используемая с аргументами параметра -v sacadm -a или pmadm -a, дает командную строку, содержащую номер версии ttymon для управляющего файла нового монитора портов.
sacadm -r -p pmtag Удаляет монитор порта
pmadm -a -p pmtag -s svctag -i id [-f ux] -v 'ttyadm -V'\
-m "'ttyadm [-b] [-r count] [-c] [-h] [-i msg]\
[-m modules] [-p prompt] [-t timeout]\
-d device -l ttylabel -s service'"
Добавляет сервис ttyadm, используемая с аргументом параметра -m pmadm -a, дает поля pmspecific для включения в управляющий файл монитора портов.
pmadm -r -p pmtag -s svctag Удаляет сервис
pmadm -e -p pmtag -s svctag Разрешает сервис
pmadm -d -p pmtag -s svctag Запрещает сервис svctag, доступный с помощью монитора портов pmtag.
sacadm -e -p pmtag Разрешает весь сервис, определенный для монитора pmtag.
sacadm -d -p pmtag Запрещает весь сервис, определенный для монитора pmtag.
/usr/sbin/sttydefs -a ttylabel [-b] [-n nextlabel]\

[-i initial-flags] [-f final-flags]

Добавляет элемент в файл /etc/ttydefs.
/usr/sbin/sttydefs -l [ttylabel] Распечатывает информацию об установке линии терминала из файла /etc/ttydefs для портов терминала с меткой ttylabel. Если ttylabel не указана, распечатывает информацию об установке линии терминала для всех записей в файле.
/usr/sbin/sttydefs -r ttylable Удаляет записи для ttylabel, указанной из /etc/ttydefs.
Назад       Содержание       Вперёд