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

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

Мануал

chkconfig – это утилита командной строки, используемая в Unix-подобных операционных системах для управления сервисами, которые автоматически запускаются при загрузке системы.

Инструмент chkconfig широко использовался в старых дистрибутивах Linux, таких как CentOS 6 и более ранние версии. chkconfig позволял администраторам легко включать и отключать службы на разных уровнях выполнения.

Почему chkconfig был важен?

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

  • Управление службами: Он предоставлял простой способ управления службами запуска без необходимости вручную создавать или удалять символические ссылки в каталогах /etc/rc.d/.
  • Контроль уровня запуска: Он позволял администраторам указывать, какие службы должны запускаться на разных уровнях выполнения. Уровни выполнения – это различные режимы работы Unix-подобных систем, такие как однопользовательский режим, многопользовательский режим и т. д.
  • Удобство: Упрощало управление службами с помощью простых команд для перечисления, добавления или удаления служб из автоматического запуска.

Основные команды chkconfig

Мы рассмотрим, как эффективно использовать команду chkconfig с ее доступными параметрами.

Командный инструмент chkconfig позволяет нам настраивать сервисы на автоматический запуск и остановку в скриптах /etc/rc.d/init.d через командную строку.

Рассмотрим некоторые распространенные команды, используемые в chkconfig:

Список всех служб

Использование параметра ‘–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
...

Проверка состояния конкретной службы

Команда ниже отображает начальную конфигурацию для определенной службы HTTP, которая отключена на всех уровнях выполнения.

chkconfig --list | grep httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

Как запустить определенную службу на уровнях выполнения

Следующие команды `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

Как проверить, какие службы включены или выключены

Следующая команда отобразит все службы, которые включены и выключены на определенном уровне выполнения 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
...

Как остановить определенную службу на уровне выполнения

Следующая команда отключит службу postfix только на одном уровне выполнения.

Аналогичным образом мы можем отключить определенную службу на нескольких уровнях выполнения за один раз, как показано ниже.

chkconfig --level 3 postfix off
chkconfig --level 2345 postfix off

Как включить или отключить службу

Чтобы включить автоматический запуск службы при загрузке.

chkconfig servicename on

Чтобы запретить службе автоматически запускаться при загрузке.

chkconfig servicename off

Переход на команду systemctl

По мере развития Linux-систем система init (используемая командой chkconfig) была заменена systemd, которая является современным менеджером систем и сервисов для операционных систем Linux.

Он предлагает больше возможностей и более высокую производительность.

С этим изменением chkconfig стал устаревшим, а его место занял systemctl.

Зачем нужен systemctl?

systemctl – это инструмент командной строки, используемый для управления системой systemd и менеджером сервисов.

Он предлагает более мощный и гибкий способ управления службами.

Вот некоторые ключевые преимущества:

  • Унифицированный интерфейс: Он предоставляет единую команду для управления как системными службами, так и уровнями выполнения (теперь в systemd они называются целями).
  • Повышенная производительность: 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.

Команды могут быть другими, но они предлагают больше контроля и лучшую интеграцию с системой в целом.

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий