7.7. Управление уровнями выполнения в Red Hat

Проблема

Если не потратить некоторое время на настройку конфигурации, Red Hat/Fedora обычно запускает множество всевозможных служб при загрузке. Если вы пошли по простому пути, вероятно, в вашей системе работает немало служб, которые лучше отключить для улучшения производительности или безопасности. Также вы можете предпочитать запускать разные службы на разных уровнях выполнения для тестирования или настройки.

Решение

Для управления службами на различных уровнях выполнения воспользуйтесь утилитой chkconfig. Например, для настройки службы ssh можно использовать такие команды:

# chkconfig --level 2345 ssh on
# chkconfig --level 016 ssh off

Первая команда указывает, что служба ssh будет запускаться на уровнях 2, 3, 4 и 5, а вторая — что на уровнях 0, 1 и 6 она будет отключена. Команда on включает службу, а off — отключает её.

Для добавления новой службы на всех уровнях выполнения используйте:

# chkconfig --add ssh

Чтобы удалить службу со всех уровней выполнения:

# chkconfig --del ssh

Для управления службами xinetd, которые не различаются по уровням выполнения, вы также можете использовать chkconfig:

# chkconfig ktalk on
# chkconfig rsync off

Службы xinetd работают либо включёнными, либо отключёнными, без привязки к уровням выполнения. Чтобы отобразить информацию обо всех службах, включая xinetd, на всех уровнях выполнения, используйте:

# chkconfig --list

Пример вывода информации о статусе служб:

anacron       0:off  1:off  2:on   3:on   4:on   5:on   6:off
syslog        0:off  1:off  2:on   3:on   4:on   5:on   6:off
cups          0:off  1:off  2:on   3:on   4:on   5:on   6:off
apmd          0:off  1:off  2:on   3:on   4:on   5:on   6:off
xinetd based services:
chargen-udp   off
rsync         off
sgi-fam       on

Если хотите узнать состояние конкретной службы, например, syslog, выполните:

# chkconfig --list syslog

Вы увидите информацию о том, на каких уровнях эта служба включена или отключена.

Комментарий

Утилита chkconfig использует начальные приоритеты запуска и остановки служб, которые берутся из стартового сценария программы. Например, в файле /etc/rc.d/init.d/cups можно найти следующие строки:

# chkconfig: 2345 90 10

Эти цифры указывают, что cups запускается на уровнях 2, 3, 4 и 5, с приоритетом 90 для запуска и 10 для остановки. Если необходимо изменить эти параметры, вы можете отредактировать сам сценарий или просто переименовать ссылки в директории /etc/rc.d/rc*.d/:

# mv /etc/rc.d/rc3.d/S90cups /etc/rc.d/rc3.d/S45cups

Это изменит приоритет запуска cups на уровне 3 с 90 на 45, что может быть полезно для оптимизации порядка запуска служб в вашей системе.

См. также

chkconfig(8); The Red Hat Customization Guide (http://www.redhat.com/docs/manuals/linux/).