Эффективное управление службами Linux: chkconfig против systemctl!

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.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)