Второй параметр, передаваемый telinit
, задает уровень выполнения. Для указания уровня используется один символ. Результаты, которые вы получите, задавая в качестве этого параметра число, очевидны. Кроме того, вы можете передать программе другие символы. Их назначение описано ниже.
• а
, b
или с
. Некоторые записи в файле /etc/inittab
идентифицируются с помощью символов a
, b
и с
. Эти символы имеют специальное назначение. Если вы передадите один из них telinit
, программа будет обрабатывать соответствующие ему записи /etc/inittab
; при этом уровень выполнения системы не изменится.
• Q
или q
. Если задать одно из этих значений как уровень выполнения, telinit
повторно считает содержимое файла /etc/inittab
и продолжит работу с учетом внесенных изменений.
• S
, или s
. Эта опция переводит систему в однопользовательский режим.
• U
, или u
. Данная опция вызывает перезагрузку процесса init
; при этом новое содержимое файла /etc/inittab
не считывается.
Зачем может понадобиться переходить на другой уровень выполнения? Изменяя уровень выполнения по умолчанию, вы можете изменять набор серверов, работающих в системе. В большинстве дистрибутивных пакетов самым важным считается сервер X Window. Одна из последних записей в файле /etc/inittab
управляет запуском этого сервера; в некоторых системах эта задача решается с помощью сценариев запуска SysV. Изменение уровня выполнения позволяет быстро перейти от одного набора сервера к другому, разрешить или запретить графический режим или временно отключить X Window.
Использование inetd
В обычных условиях программа-сервер связывается с некоторым портом (ресурсом, для идентификации которого используется тип протокола и число в интервале от 1 до 65535). В зависимости от номера порта, указанного в запросе, этот запрос направляется тому или иному серверу. Например, почтовый сервер, поддерживающий SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты), традиционно использует TCP-порт 25, a HTTP (Hypertext Transfer Protocol — протокол передачи гипертекстовой информации), как правило, связывается с портом 80.
Программа inetd
является одним из суперсерверов, используемых в операционной системе Linux. Суперсервер выполняет функции посредника. Вместо набора серверов в системе запускается один суперсервер, который связывается со всеми портами, соответствующими серверам из набора. При установлении соединения суперсервер загружает сервер, порт которого указан в запросе, после чего этот сервер выполняет требуемые действия по передаче данных. Использование суперсервера обеспечивает два основных преимущества по сравнению с постоянным выполнением обычных серверов. Во-первых, при таком подходе уменьшается объем используемой оперативной памяти; в особенности это заметно, если на компьютере должно присутствовать большое количество программ- серверов. Во-вторых, перед тем как запрос будет передан обычном серверу, его получает суперсервер, который может выполнять необходимую фильтрацию данных; это повышает безопасность системы. Недостаток использования суперсервера состоит в том, что продолжительность обработки запроса увеличивается (как правило, на одну-две секунды). Это связано с тем, что для загрузки сервера требуется определенное время. Поэтому суперсервер лучше применять для серверов, которые вызываются достаточно редко. Если запросы к серверу приходят часто, лучше, если такой сервер постоянно присутствует в памяти компьютера.
Формат файла /etc/inetd.conf
Для настройки inetd
используется конфигурационный файл /etc/inetd.conf
. Если не принимать во внимание комментарии (строки, начинающиеся с символа #
), то можно сказать, что содержимое файла inetd.conf
представляет собой набор строк, каждая из которых определяет отдельный сервер. Пример записи, содержащейся в файле /etc/inetd.conf
приведен ниже.
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
Каждая строка файла состоит из нескольких полей, которые отделяются друг от друга с помощью пробелов или символов табуляции.
• Имя сервера. Первое поле в строке идентифицирует протокол, используемый сервером. Имя протокола должно соответствовать имени, указанному в файле /etc/services
. Например, обратившись к этому файлу, можно выяснить, что имени telnet
соответствует значение 23/tcp
, т.е. сервер, поддерживающий протокол telnet
, должен использовать для взаимодействия порт 23. Для того чтобы программа inetd
могла управлять сервером, для этого сервера должна существовать запись в файле /etc/services
. Очевидно, что, планируя запуск редко встречающегося сервера посредством inetd
, надо позаботиться о том, чтобы соответствующая запись была включена в этот файл. Подавляющее большинство серверов изначально учтено в /etc/services
.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии