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/).