systemctl: 12 команд, которые осваивают Linux 🚀
Команда systemctl имеет несколько функций, которые часто упускают из виду. Помимо запуска и остановки служб в Linux, вы также можете просматривать список установленных служб и проверять их состояние. Давайте сделаем краткий обзор! 🚀
Что такое команда Systemctl?
Команда systemctl — это центральный инструмент управления для системы инициализации systemd, в первую очередь известный как инструмент, используемый для запуска и остановки служб. Но есть и гораздо больше, о чем свидетельствует его страница руководства который имеет более 1600 строк. 📖
Поскольку systemctl — это инструмент управления, а не просто средство запуска служб, вы можете использовать его для доступа к полезной информации о вашей системе и ее службах systemd. 💻
Большинство дистрибутивов Linux используют systemd, но некоторые решили сохранить традиционную систему инициализации SystemV. Если вы не уверены, какой из них используется в вашем дистрибутиве, это легко выяснить. Мы воспользуемся командой stat для просмотра файла init.
стат /sbin/init

Исполняемый файл /sbin/init — это первый процесс, запускаемый в дистрибутивах на базе SystemV. В дистрибутивах на основе systemd символическая ссылка с таким именем указывает на systemd.
Первая строка вывода показывает нам, что на этой тестовой машине Ubuntu /sbin/init является символической ссылкой на файл /lib/systemd/systemd. Очевидно, что эта установка Linux использует systemd. Если бы это был дистрибутив на основе SystemV, строка содержала бы только «Файл: /sbin/init».
Опрос служб с помощью systemctl
Службы определяются в файлах юнитов, и вы увидите слово unit в параметрах systemctl. В качестве примера мы можем получить список служб с помощью команды list-units, используя опцию –type.
systemctl список-единицы --тип=служба

Вывод отображается в средстве просмотра файлов Less, позволяющем осуществлять навигацию и использовать клавишу / для поиска.
- Единица: Имя файла модуля.
- Нести: Если файл сервисного модуля был прочитан в память без синтаксических ошибок, в этом столбце будет указано «загружено». Это не означает, что услуга активна.
- Объект: Обзор того, активна ли служба. Активная служба может быть не запущена.
- Суб: Более подробный просмотр того, запущена ли служба. Например, активная служба может быть запланирована на таймер и, возможно, уже завершила свой последний запуск.
- Описание: Строка текста, предназначенная для идентификации или описания услуги.
На дисплее отображаются только активные услуги. Чтобы увидеть все службы, нам нужно включить опцию –all.
systemctl список-единицы --все --тип=служба

Если просмотр всего этого утомляет, мы можем отфильтровать вывод с помощью опции –state.
systemctl список-единицы --тип=служба --состояние=работает

Опция состояния может принимать значения «работает», «остановлен», «включен», «отключен» и «неисправен».
Чтобы сосредоточиться на невыполненных службах, используйте опцию –failed.
systemctl список-единицы --неудачные

На этом компьютере нет неисправных дисков.
Если вы видите какие-либо неисправные службы, используйте параметр list-dependencies для проверки неудовлетворенных зависимостей.
systemctl список-зависимости sshd.service

Зависимости имеют цветной круг, отображающий их статус. Может быть:
- Белый круг: Неактивно или находится на обслуживании
- Зеленая точка: Объект.
- Белая точка: Деактивация.
- Красная точка: Не удалось или произошла ошибка.
Чтобы проверить, включена ли отдельная служба, используйте команду is-enabled и укажите имя файла модуля службы.
systemctl эс-включен htg-example.service

Управление службами с помощью systemctl
Использовать systemctl для управления службами очень просто, и формат команд соответствует формату, который мы рассматривали до сих пор. Самое большое отличие заключается в том, что для внесения изменений в состояния служб вам придется использовать sudo. До сих пор мы этого не делали, поскольку сообщали только о состоянии услуг.
Чтобы запустить службу, используйте команду start, за которой следует имя службы.
пот systemctl начинать htg-пример.услуга

Если все пройдет хорошо, вы автоматически вернетесь в командную строку. Если вы предпочитаете иметь положительное подтверждение, вы можете проверить его с помощью команды status.
пот systemctl статус htg-пример.услуга

Остановить службу так же просто, как и запустить ее.
пот systemctl останавливаться htg-пример.услуга

Вы можете перезапустить службу, не проходя двухэтапный процесс ее остановки и последующего запуска. Он команда перезапуска сделает все это за вас.
пот systemctl перезапуск htg-пример.услуга

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

Обратите внимание, что это только помечает службу для запуска при загрузке, а не запускает ее немедленно. Если это то, что вам нужно, я добавил опцию –now.
пот systemctl давать возможность --сейчас htg-пример.услуга

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

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

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