В этом руководстве я буду обсуждать команды service и systemctl и их различия в управлении сервисами.
Прежде чем идти дальше, давайте сначала разберемся с двумя популярными системами инициализации Linux; Система и Systemd.
Система V против Systemd
Система инициализации в Linux является важной частью процесса загрузки. Это первый процесс с PID 1, который запускается при загрузке системы. Затем он запускает процессы, присутствующие в файле inittab. System V также знает SysV и systemd — популярные системы инициализации Linux.
СисВ является более старой системой инициализации и была частью старых дистрибутивов Unix и Linux. Он управляет системными службами с помощью сценариев, расположенных в файле /etc/init.d. Некоторые дистрибутивы Linux, которые все еще используют SysV, — это Slackware, Gentoo и antiX Linux.
С другой стороны, системный запущен в 2010 году и был быстро принят многими дистрибутивами Linux. Система инициализации systemd управляет службами через файлы .service. В настоящее время он является частью всех современных дистрибутивов Linux, включая Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu и дистрибутивов на основе этих операционных систем.
Systemd намного более эффективен по сравнению с SysV. Он обеспечивает более быструю загрузку, эффективное управление услугами и обработку зависимостей.
Обе системы инициализации предоставляют две утилиты командной строки для управления службами.
В следующих разделах руководства я расскажу об этих двух утилитах.
сервисная команда
услуга Команда — это оболочка сценария, которая запускает сценарии, расположенные в /etc/init.d каталог. Он был разработан для управления сервисом СисВ или Система V система инициализации. Дистрибутивы Linux, использующие SysV в качестве системы инициализации, используют услуга команда для управления услугами.
Общий синтаксис использования служебной команды приведен ниже.
услуга [ наименование услуги ] [ действие ]Чтобы получить статус служб, контролируемых System V, используйте команду service с –статус-все вариант.
услуга --status-all
+ указывает, что служба запущена, а – показывает, что служба неактивна.
Текущий статус любой конкретной службы также можно проверить, указав имя службы.
услуга [ наименование услуги ] положение дел
Ниже перечислены некоторые другие полезные служебные команды, такие как запуск, остановка и перезапуск службы.
услуга [ наименование услуги ] начинатьуслуга [ наименование услуги ] останавливаться
услуга [ наименование услуги ] перезапуск
Эта служебная команда обеспечивает базовый контроль над управлением службами. Большинство дистрибутивов Linux заменили SysV в качестве системы инициализации, но из-за устаревшей совместимости эта команда по-прежнему присутствует во многих последних дистрибутивах Linux «из коробки».
Команда systemctl
С помощью команды systemctl вы можете управлять службами в /lib/systemd/система и /etc/systemd/система каталоги. Это компонент systemd; система инициализации, присутствующая в большинстве современных дистрибутивов Linux.
Systemctl предназначен для обеспечения большего контроля над управлением системными службами. Общий синтаксис использования команды systemctl приведен ниже:
системаctl [ вариант ] [ наименование услуги ]Чтобы проверить состояние всех служб, используйте следующую команду.
systemctl список единиц --тип =сервис --всеДля конкретной услуги используйте:
Статус системы [ наименование услуги ]
Ниже приведены команды для базового управления сервисом с помощью systemctl:
системаctl давать возможность [ наименование услуги ]запуск системы [ наименование услуги ]
остановка системы [ наименование услуги ]
systemctl отключить [ наименование услуги ]
перезапуск системы [ наименование услуги ]
Команда systemctl выходит за рамки управления службами. В таблице ниже приведены некоторые расширенные команды systemctl.
пути к списку | Чтобы вывести список путей ко всем службам в памяти |
активен [имя_сервиса] | Чтобы проверить, запущена ли служба или устройство или нет |
список-зависимостей [имя_сервиса] | Чтобы распечатать список зависимостей указанного сервиса |
сброс-не удалось | Чтобы сбросить службы, которые не удалось загрузить из-за какой-либо неисправности. |
маска [имя_сервиса] | Чтобы отключить службу и сделать ее невозможным запуск |
получить значение по умолчанию | Чтобы распечатать уровень запуска или цель по умолчанию |
установка по умолчанию [цель] | Чтобы установить уровень выполнения или цель по умолчанию |
работает ли система | Для проверки рабочего состояния системы |
перезагрузить | Чтобы перезагрузить систему |
выключение | Чтобы выключить систему |
Почему в дистрибутивах Linux до сих пор есть служебная команда с systemd init System
Команда service по-прежнему является частью многих дистрибутивов Linux, поскольку она представляет собой сценарий-оболочку и абстрагирует базовую систему инициализации, будь то SysV или systemctl. Например, в Ubuntu команда службы перенаправляется на файл systemctl.
Заключение
Service и systemctl — это две утилиты командной строки, принадлежащие системам инициализации SysV и systemd соответственно. Несмотря на замену команды service в современных дистрибутивах Linux, она остается ключевым инструментом для поддержки служб благодаря простоте и совместимости. С другой стороны, systemctl является частью всех текущих дистрибутивов Linux и предоставляет расширенные возможности для администрирования служб.