Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

Эти 12 команд systemctl позволят вам управлять службами Linux systemd

Команда systemctl имеет некоторые часто упускаемые возможности. В дополнение к запуску и остановке служб Linux, вы можете перечислить установленные службы и проверить, в каком состоянии они находятся. Вот краткий обзор. Команда systemctl является центральным инструментом управления системой инициализации systemd, наиболее известным как инструмент, используемый для запуска и остановки служб. Но на этом его возможности не заканчиваются, что подтверждается длиной его справочной страницы, превышающей 1600 строк. Поскольку systemctl является инструментом управления, а не просто запускателем служб, вы можете использовать его для получения полезной информации о вашей системе systemd и ее службах. Большинство дистрибутивов Linux приняли systemd, но некоторые предпочли сохранить традиционную систему инициализации SystemV. Если вы не уверены, какую схему использует ваш дистрибутив, это можно легко выяснить. Мы воспользуемся командой stat, чтобы посмотреть на файл инициализации. Исполняемый файл
Оглавление

Быстрые ссылки

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

Что такое команда systemctl?

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

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

Большинство дистрибутивов Linux приняли systemd, но некоторые предпочли сохранить традиционную систему инициализации SystemV. Если вы не уверены, какую схему использует ваш дистрибутив, это можно легко выяснить. Мы воспользуемся командой stat, чтобы посмотреть на файл инициализации.

-2

Исполняемый файл /sbin/init — это первый процесс, который запускается в дистрибутивах на основе SystemV. В дистрибутивах на основе systemd символическая ссылка с таким именем указывает на файл systemd.

Первая строка вывода показывает, что на этой тестовой машине Ubuntu /sbin/init является символической ссылкой на файл /lib/systemd/systemd. Очевидно, что эта установка Linux использует systemd. Если бы это был дистрибутив на основе SystemV, в строке была бы только надпись «File: /sbin/init».

Выяснение информации о службах с помощью systemctl

Службы определяются в юнит-файлах, и вы увидите слово "юнит" разбросанным по параметрам systemctl. Например, мы можем получить список служб с помощью команды list-units с параметром --type.

-3

Вывод отображается в просмотрщике файлов less, что позволяет прокручивать вывод и использовать ключ / для поиска.

В отображении включены только активные службы. Чтобы увидеть все службы, нам нужно добавить параметр --all.

-4

Если видеть все сразу слишком похоже на информационную перегрузку, мы можем отфильтровать вывод с помощью параметра --state.

-5

Параметр состояния может принимать значения running (работает), stopped (остановлено), enabled (включено), disabled (отключено) и failed (не удалось).

Чтобы сосредоточиться на неудавшихся службах, используйте параметр --failed.

-6

На этом компьютере нет неудавших юнитов.

Если вы видите какие-либо неудавшие службы, используйте параметр list-dependencies, чтобы проверить, есть ли невыполненные зависимости.

-7

Зависимости помечаются цветными кругами, представляющими их состояние. Это может быть:

Чтобы проверить, включена ли конкретная служба, используйте команду is-enabled и укажите имя юнит-файла службы.

-8

Управление службами с помощью systemctl

Использовать systemctl для управления службами очень просто, и команды следуют формату, который мы уже видели. Главное отличие в том, что вам нужно использовать sudo, чтобы изменять состояния служб. Мы не использовали его до сих пор, поскольку только сообщали о состояниях служб.

Чтобы запустить службу, используйте команду start, за которой следует имя службы.

-9

Если все пройдет успешно, вы вернетесь без сообщений к командной строке. Если вам нужно положительное подтверждение, вы можете получить верификацию с помощью команды status.

-10

Остановить службу так же просто, как и запустить.

-11

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

-12

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

-13

Обратите внимание, что это просто помечает службу для запуска при загрузке, она не запускается сразу. Если вы хотите сделать это, добавьте флаг --now.

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

Вы можете использовать команду journalctl, которая также является частью systemd, чтобы искать записи, относящиеся к вашей службе. Параметр -u (юнит) позволяет указать интересующую вас службу. С помощью параметра -S (с начала) вы можете показать записи, которые были сделаны с момента, которое вы укажете.

Ваш инструмент управления службами

Все, что помогает вам получить представление о внутренней работе вашего дистрибутива Linux, будет полезным инструментом для повседневного управления, устранения неполадок и диагностики проблем. Команда systemctl — это не один инструмент. Это скорее ящик инструментов со специализированными инструментами, и с ним стоит освоиться.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Вы также можете читать меня в: