ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Service против Systemctl

Service против Systemctl

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

В этой статье мы расскажем о командах service и systemctl, а также о том, чем они отличаются, когда дело доходит до управления службами.

Прежде чем идти дальше, давайте сначала разберемся с двумя популярными системами инициализации Linux: System и Systemd.

 

System V против Systemd

Система инициализации в Linux является важной частью процесса загрузки. Это первый процесс с PID 1, который инициируется при загрузке системы. Затем он запускает процессы, присутствующие в файле inittab. System V также знает, что SysV и systemd являются популярными системами инициализации Linux.

SysV – это более старая система инициализации, которая была частью старых дистрибутивов Unix и Linux. Он управляет системными службами с помощью скриптов, расположенных в /etc/init.d. Некоторые дистрибутивы Linux, которые все еще используют SysV, – это Slackware, Gentoo и antiX Linux.

С другой стороны, systemd был запущен в 2010 году и быстро принят многими дистрибутивами Linux. Система инициализации systemd управляет сервисами через файлы .service. Теперь это часть всех современных дистрибутивов Linux, включая Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu и дистрибутивы, основанные на этих операционных системах.

Systemd намного эффективнее по сравнению с SysV. Он обеспечивает более быстрое время загрузки, эффективное управление службами и обработку зависимостей.

Обе системы инициализации предоставляют две утилиты командной строки для управления сервисами.

 

В следующих разделах руководства мы расскажем об этих двух утилитах.

 

Команда service

Команда service представляет собой оболочку скрипта, которая запускает скрипты, расположенные в каталоге /etc/init.d. Он был разработан для управления сервисом системы инициализации SysV или System V. Дистрибутивы Linux, использующие SysV в качестве системы инициализации, используют команду service для управления службами.

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

service [service_name] [action]

 

Чтобы узнать состояние служб, контролируемых System V, используйте команду service с параметром –status-all.

service --status-all

 

Service против Systemctl

где:

 

Текущее состояние любой конкретной службы также можно проверить, упомянув название службы.

service [service_name]

 

Service против Systemctl

 

Ниже перечислены некоторые другие полезные сервисные команды, такие как запуск, остановка и перезапуск сервиса.

service [service_name] start

service [service_name]

service [service_name] restart

 

Эта сервисная команда предоставляет базовый контроль для управления службами. Большинство дистрибутивов Linux заменили SysV в качестве системы инициализации, но из-за устаревшей совместимости эта команда по-прежнему поставляется во многих последних дистрибутивах Linux “из коробки”.

 

Команда systemctl

Используя команду systemctl, вы можете управлять службами в каталогах /lib/systemd/system и /etc/systemd/system. Это компонент systemd; система инициализации, встречающаяся в большинстве современных дистрибутивов Linux.

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

systemctl [option] [service_name]

 

Чтобы проверить состояние всех сервисов, используйте следующую команду.

systemctl list-units --type=service --all

 

Для конкретного использования сервиса:

systemctl status [service_name]

 

Service против Systemctl

 

Ниже приведены команды для базового управления сервисом с использованием systemctl:

systemctl enable [service_name]

systemctl start [service_name]

systemctl stop [service_name]

systemctl disable [service_name]

systemctl restart [service_name]

 

Команда systemctl выходит за рамки того, что касается управления службами. В таблице ниже приведены некоторые расширенные команды systemctl.

list-paths Чтобы указать путь ко всем сервисам в памяти
is-active [service_name] Чтобы проверить, запущена ли служба или модуль или нет
list-dependencies [service_name] Для печати списка зависимостей указанного сервиса
reset-failed Для сброса служб, которые не удалось загрузить из-за какой-либо неисправности
mask [service_name] Отключает службу и не позволяет ей запуститься
get-default Чтобы вывести уровень запуска по умолчанию или целевое значение
set-default [target] Чтобы установить уровень запуска по умолчанию или целевое значение
is-system-running Для проверки рабочего состояния системы
reboot Как перезагрузить систему
poweroff Чтобы завершить работу системы

 

Почему в дистрибутивах Linux до сих пор существует команда service с systemd init System

Команда service по-прежнему является частью многих дистрибутивов Linux, поскольку она является скриптом-оболочкой и абстрагирует базовую систему инициализации, будь то SysV или systemctl. Например, в Ubuntu команда service перенаправляется на systemctl.

 

Заключение

Сервис и systemctl – это две утилиты командной строки, принадлежащие системам инициализации SysV и systemd соответственно. Несмотря на замену команды service в современных дистрибутивах Linux, она остается ключевым инструментом для обслуживания сервисов благодаря простоте и совместимости. С другой стороны, systemctl является частью всех текущих дистрибутивов Linux и предоставляет расширенные возможности для администрирования сервисов.

Exit mobile version