chkconfig – это утилита командной строки, используемая в Unix-подобных операционных системах для управления тем, какие службы запускаются автоматически при загрузке системы.
Инструмент chkconfig широко использовался в старых дистрибутивах Linux, таких как CentOS 6 и более ранних. chkconfig позволял администраторам легко включать и отключать службы на разных уровнях выполнения.
Почему chkconfig был важен?
Прежде чем мы рассмотрим современную замену, давайте разберемся, почему chkconfig был полезен:
- Управление службами: Она предоставляла простой способ управления службами запуска без необходимости вручную создавать или удалять символические ссылки в каталогах /etc/rc.d/.
- Управление уровнем запуска: Позволял администраторам указывать, какие службы должны запускаться на разных уровнях. Уровни выполнения – это различные режимы работы Unix-подобных систем, такие как однопользовательский режим, многопользовательский режим и т. д.
- Удобство: Упрощенное управление службами с помощью простых команд для перечисления, добавления или удаления служб из автоматического запуска.
Основные команды chkconfig
Команда chkconfig позволяет нам настроить автоматический запуск и остановку служб в скриптах /etc/rc.d/init.d через командную строку.
Рассмотрим некоторые распространенные команды, используемые в chkconfig:
1. Список всех служб
Использование параметра --list
отобразит все службы и их текущее состояние запуска в каждой конфигурации уровня выполнения.
chkconfig --list NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off ...
2. Проверка состояния конкретной службы
Команда ниже отображает начальную конфигурацию для конкретной службы HTTP, которая отключена на всех уровнях выполнения.
chkconfig --list | grep httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
3. Как запустить определенную службу на уровнях выполнения
Следующие команды chkconfig демонстрируют, как настроить службы HTTP на запуск только на уровнях выполнения 3
и 5
с помощью параметра --level
.
Первая команда запускает службы httpd на уровнях выполнения 3
и 5
, а вторая команда проверяет состояние служб httpd, запущенных на этих уровнях выполнения.
chkconfig --level 35 httpd on chkconfig --list | grep httpd
Пример вывода:
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
4. Как проверить, какие службы включены или выключены
Следующая команда отобразит все службы, которые Включены и Выключены на определенном уровне выполнения 5.
chkconfig --list | grep 5:on
Пример вывода:
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off ...
chkconfig --list | grep 5:off
Примерный выход:
dnsmasq 0:off 1:off 2:off 3:off 4:off 5:off 6:off dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off firstboot 0:off 1:off 2:off 3:off 4:off 5:off 6:off kdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off ...
5. Как остановить определенную службу на уровне выполнения
Следующая команда выключит службу postfix только на одном уровне выполнения. Аналогичным образом мы можем отключить определенную службу на нескольких уровнях запуска одним движением, как показано ниже.
chkconfig --level 3 postfix off chkconfig --level 2345 postfix off
6. Как включить или отключить службу
Чтобы включить автоматический запуск службы при загрузке.
chkconfig servicename on
Чтобы отключить автоматический запуск службы при загрузке.
chkconfig servicename off
Переход к команде systemctl
По мере развития Linux-систем система init (используемая командой chkconfig) была заменена на systemd, которая является современным менеджером систем и сервисов для операционных систем Linux.
Он предлагает больше возможностей и более высокую производительность. С этим изменением chkconfig стал устаревшим, а его место занял systemctl.
Зачем использовать systemctl?
systemctl – это инструмент командной строки, используемый для управления системой systemd и менеджером служб. Он предлагает более мощный и гибкий способ управления сервисами.
Вот некоторые ключевые преимущества:
- Унифицированный интерфейс: Он предоставляет единую команду для управления как системными службами, так и уровнями выполнения (теперь в systemd они называются targets).
- Повышенная производительность: systemd запускает службы параллельно, улучшая время загрузки.
- Большие возможности: Поддерживаются такие современные функции, как зависимость служб, запуск служб по требованию и многое другое.
Основные команды systemctl
Давайте рассмотрим, как с помощью systemctl выполнять те же задачи, что и с помощью chkconfig:
Как составить список активных служб
Эта команда перечисляет все активные службы, управляемые systemd в системе, предоставляя дополнительную информацию о статусе и свойствах каждой службы.
systemctl list-units --type=service
Как включить или отключить службу
Чтобы включить автоматический запуск службы при загрузке.
systemctl enable servicename
Чтобы отключить автоматический запуск службы при загрузке.
systemctl disable servicename
Как запустить, остановить и перезапустить службу
Чтобы запустить службу немедленно.
systemctl start servicename
Немедленно остановить службу.
systemctl stop servicename
Чтобы немедленно перезапустить службу.
systemctl restart servicename
Как проверить состояние службы
Чтобы проверить состояние услуги.
systemctl status servicename
Заключение
Хотя chkconfig был ценным инструментом для управления службами в старых дистрибутивах Linux, переход к systemd и команде systemctl принес многочисленные улучшения в плане функциональности и производительности.
Понимание того, как использовать systemctl, необходимо для современного администрирования Linux. Команды могут отличаться, но они обеспечивают больший контроль и лучшую интеграцию с системой в целом.
Если вы знакомы с командой chkconfig, изучение systemctl поможет вам более эффективно управлять службами в современных средах Linux.
Комментарии (0)