Сетевые средства Linux - страница 55

стр.

Внимание

Не устанавливайте в качестве уровня по умолчанию уровень 0 или 6. Если вы поступите так, то сразу после загрузки работа системы будет завершена либо компьютер начнет перезагружаться. Для того чтобы изменить настройку, вам придется загрузить компьютер с другого диска.

Если вы хотите временно изменить уровень выполнения, сделайте это с помощью команды >telinit (в некоторых системах для этого приходится вызывать init). Синтаксис >telinit имеет следующий вид:

>telinit [-t время_в_секундах] [уровень]

При изменении уровня выполнения некоторые процессы могут быть завершены. Для завершения процесса Linux передает ему сигнал >SIGTERM либо >SIGKILL. Сигнал >SIGTERM обеспечивает более "мягкий" режим окончания работы; при этом программа получает возможность закрыть файлы и освободить другие ресурсы. >SIGKILL принудительно завершает выполнение программы, в результате файлы, используемые в процессе его работы, могут быть повреждены. При изменении уровня выполнения >telinit сначала пытается использовать >SIGTERM. Если процесс продолжает выполняться, то через пять секунд >telinit передает ему сигнал >SIGKILL. Опция >-t позволяет изменить этот интервал. В большинстве случаев значение, равное пяти секундам, вполне приемлемо.

Второй параметр, передаваемый >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. Суперсервер выполняет функции посредника. Вместо набора серверов в системе запускается один суперсервер, который связывается со всеми портами, соответствующими серверам из набора. При установлении соединения суперсервер загружает сервер, порт которого указан в запросе, после чего этот сервер выполняет требуемые действия по передаче данных. Использование суперсервера обеспечивает два основных преимущества по сравнению с постоянным выполнением обычных серверов. Во-первых, при таком подходе уменьшается объем используемой оперативной памяти; в особенности это заметно, если на компьютере должно присутствовать большое количество программ- серверов. Во-вторых, перед тем как запрос будет передан обычном серверу, его получает суперсервер, который может выполнять необходимую фильтрацию данных; это повышает безопасность системы. Недостаток использования суперсервера состоит в том, что продолжительность обработки запроса увеличивается (как правило, на одну-две секунды). Это связано с тем, что для загрузки сервера требуется определенное время. Поэтому суперсервер лучше применять для серверов, которые вызываются достаточно редко. Если запросы к серверу приходят часто, лучше, если такой сервер постоянно присутствует в памяти компьютера.