Если вам нужно временно запустить или остановить сервер, не перезагружая компьютер, либо если вы захотите перезапустить сервер после изменения его конфигурационного файла, вы можете вызвать сценарий запуска вручную и передать ему параметр
start
или
stop
. Например, для того, чтобы немедленно прекратить работу сервера Postfix в системе Mandrake, вам надо выполнить следующую команду:
# /etc/rc.d/init.d/postfix stop
Большинство версий Linux при попытке завершить работу сервера выводит специальное сообщение. Кроме того, после остановки сервера отображается дополнительное сообщение о том, насколько успешно выполнена данная операция. При запуске сценария SysV появляется сообщение об успешном запуске сервера. (Эти сообщения вы видите на экране при загрузке компьютера.)
Если
вы работаете с системой Slackware, то вместо переименования, добавления и удаления сценариев запуска или ссылок на них вам надо отредактировать один файл сценария, соответствующий требуемому уровню выполнения. Так, например, чтобы изменить поведение системы на уровне 4, вам надо внести изменения в файл
/etc/rc.d/rc.4
. Заметьте, что для многих серверов сценарии запуска отсутствуют; эти серверы запускаются с помощью
/etc/rc.d/rc.inet2
(программы поддержки базовых сетевых средств, используемых этими серверами, запускаются посредством /etc/rc.d/rc.inet1). Для того чтобы изменить набор серверов, выполняемых в системе, надо вручную отредактировать эти сценарии так, как будто вы имеете дело с локальными сценариями запуска. (Локальные сценарии запуска будут рассмотрены ниже в этой главе.)
Использование утилит управления сценариями запуска
Некоторые дистрибутивные пакеты включают специальные утилиты, которые упрощают управление сценариями запуска. Пользуясь этими утилитами, вы уменьшаете риск неправильно задать имя сценария. Так, например, изменяя набор серверов, выполняемых в системе, вручную, вы можете вместо
S80postfix
случайно задать имя
s80postfix
(т.е. вместо "
S
" в верхнем регистре задать "
s
" в нижнем регистре). При использовании специализированных утилит такая ситуация не возникнет. К сожалению, подобные утилиты присутствуют не во всех системах; чаще всего они входят в состав Red Hat и систем, созданных на ее основе, например Mandrake. Перенос утилиты из одной системы в другую не дает желаемого результата, так как в разных системах расположение и имена сценариев запуска и ссылок SysV, а также номера, определяющие порядок запуска, могут различаться.
На заметку
В данном разделе рассматриваются утилиты управления сценариями запуска, предоставляющие алфавитно-цифровой интерфейс. Для выполнения подобных задач могут использоваться также утилиты с графическим интерфейсом, которые будут обсуждаться далее в этой главе.
Использование
chkconfig
Инструментальное средство
chkconfig
, предназначенное для управления сценариями запуска SysV, предоставляет пользователю низкоуровневый интерфейс. Вся информация, необходимая для выполнения задачи, задается в одной командной строке. Утилита
chkconfig
вызывается следующим образом:
chkconfig <--list|--add|--del> [имя]
chkconfig [--level уровни] имя [on|off|reset]
Первый вариант вызова используется тогда, когда необходимо получить информацию о текущей конфигурации (опция
– -list
), добавить или удалить ссылки из каталога ссылок SysV (соответственно опции
– -add
и
– -del
). Второй вариант вызова позволяет разрешить или запретить сценарий на некоторых (или на всех) уровнях выполнения (эта задача решается путем переименования ссылки SysV). Приведенные ниже примеры иллюстрируют использование данной команды.
Предположим, что вы хотите получить подробную информацию о конфигурации Postfix. Если вы знаете, что стартовый сценарий Postfix называется
postfix
, вы можете задать следующую команду:
# chkconfig --list postfix
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
В результате утилита выводит информацию о состоянии Postfix на каждом из уровней выполнения. Проверить правильность полученных данных можно, воспользовавшись командой
find
. Если
chkconfig
отображает значение
on
, это свидетельствует о том, что имя ссылки начинается с символа "
S
", соответственно
off
означает, что имя ссылки начинается с символа "
K
".
Если вы выполните команду
chkconfig --list
, не указав имени сценария,
chkconfig
выведет информацию о состоянии всех сценариев запуска. Если в вашей системе используется
xinetd
, вы, возможно, получите также сведения о серверах, которые запускаются с помощью этого суперсервера.
Опция
– -add
добавляет ссылку (если она отсутствует), а опция
– -del
позволяет удалить существующую ссылку. Используя эти опции, необходимо указать имя сценария запуска. Например, команда
chkconfig --del postfix
удаляет все ссылки SysV на сценарий, ответственный за запуск сервера Postfix. В результате ее выполнения Linux не будет запускать сервер посредством сценариев SysV, а также не будет предпринимать попыток изменить состояние сервера при переходе на другой уровень выполнения. Удалять ссылки имеет смысл в том случае, если вы собираетесь запускать сервер с помощью суперсервера либо локальных сценариев запуска. Для того чтобы выполнить обратные изменения, надо воспользоваться опцией
– -add
.
Чаще всего при работе с
chkconfig
используются параметры
on
,
off
и
reset
. Они позволяют разрешить или запретить запуск сервера на указанном уровне выполнения, а также восстановить исходные установки для этого уровня. Если вы не укажете опцию
– -level
, то изменения будут произведены на всех уровнях выполнения. Предположим, вам необходимо запретить запуск сервера Postfix на уровне 3. Сделать это можно с помощью следующей команды:
# chkconfig --level 3 postfix off
При выполнении этой команды не отображаются никакие данные. Проверить полученные результаты можно, вызвав утилиту
chkconfig
с опцией
– -list
или просмотрев содержимое соответствующего каталога ссылок. Для того чтобы разрешить запуск сервера, надо вместо указать параметр on. Если вам необходимо, чтобы действие утилиты распространялось на несколько уровней выполнения, надо указать требуемые уровни выполнения в виде одной строки. Так, например, чтобы изменения были произведены на уровнях 3–5, надо указать значение
345
опции
– -level
. Если вы поэкспериментировали с установками и хотите вернуть их в исходное состояние, вам следует задать параметр
reset
.
# chkconfig postfix reset
Эта команда вернет ссылки на сценарии запуска для сервера Postfix в первоначальное состояние. Для того чтобы восстановить установки лишь для отдельных уровней, следует задать опцию
– -level
и указать в качестве ее значения один или несколько уровней.
Несмотря на то что
chkconfig
обычно рассматривается как средство управления сценариями SysV, во многих системах эта утилита также может использоваться для настройки
xinetd
. Предположим, что
chkconfig
сконфигурирована таким образом, что она воспринимает сервер FTP как программу, запускаемую посредством суперсервера. В этом случае вы можете применять эту утилиту для изменения конфигурации FTP так, как будто для запуска данного сервера используются сценарии SysV. При этом опция
– -level
не работает, а при указании опции
– -list
не отображается информация об уровнях выполнения. Любой сервер, запускаемый с помощью суперсервера, будет функционировать на тех уровнях выполнения, на которых запускается
xinetd
. Опции
– -add
и
– -del
действуют подобно параметрам
on
и
off
. Конфигурационные файлы
/etc/xinetd.d
не удаляются, но их использование запрещается. Подробно работа