Использование утилит управления сценариями запуска
Использование утилит управления сценариями запуска
Некоторые дистрибутивные пакеты включают специальные утилиты, которые упрощают управление сценариями запуска. Пользуясь этими утилитами, вы уменьшаете риск неправильно задать имя сценария. Так, например, изменяя набор серверов, выполняемых в системе, вручную, вы можете вместо 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 не удаляются, но их использование запрещается. Подробно работа xinetd будет рассмотрена далее в этой главе.
При изменении конфигурации SysV посредством chkconfig состояние выполняющихся в системе серверов не изменяется. Например, если вы запретили запуск sshd, работа сервера не завершится. Чтобы это произошло, надо предпринять дополнительные действия, например, вызвать сценарий запуска SysV и передать ему опцию stop либо вручную остановить сервер.
Использование ntsysv
Программа ntsysv предоставляет пользователю интерфейс в виде текстового меню и позволяет управлять запуском серверов. Для того чтобы запустить программу, достаточно ввести ее имя, при необходимости можно задать опцию -level уровни; в качестве значения опции -level указывается один или несколько уровней выполнения, которые вы хотите изменить. Если вы не зададите эту опцию, ntsysv изменит только конфигурацию текущего уровня. Внешний вид меню ntsysv показан на рис. 4.1.
Рис. 4.1. Программа ntsysv предоставляет пользователю простой интерфейс для настройки сценариев SysV
Программа ntsysv отображает сведения обо всех серверах, для которых созданы сценарии запуска SysV. Некоторые версии ntsysv также выводят данные о серверах, запускаемых с помощью xinetd. Для того чтобы разрешить или запретить запуск сервера, надо с помощью клавиш со стрелками выбрать сервер в меню и нажать клавишу пробела. Символ * слева от имени сервера указывает на то, что при переходе на данный уровень выполнения сервер будет запущен; отсутствие этого символа означает, что запуск сервера запрещен. После внесения изменений надо с помощью клавиши <Tab> выбрать кнопку OK и нажать клавишу <Enter>; в результате изменения будут сохранены, и выполнение программы завершится.
С помощью ntsysv вы можете задавать уровни выполнения, на которых будут работать серверы, запускаемые с помощью суперсервера; данная программа не позволяет лишь изменять уровни выполнения для самого суперсервера. Запрет загрузки сервера не означает, что этот сервер немедленно прекратит работу. Чтобы это произошло, вам надо вручную завершить выполнение сервера либо, если этот сервер запускается посредством суперсервера, перезапустить суперсервер.