systemctl: Полный контроль в Linux за 12 шагов

systemctl 12 команд, которые осваивают Linux

systemctl: 12 команд, которые осваивают Linux 🚀

Команда systemctl имеет несколько функций, которые часто упускают из виду. Помимо запуска и остановки служб в Linux, вы также можете просматривать список установленных служб и проверять их состояние. Давайте сделаем краткий обзор! 🚀

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

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

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

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

стат /sbin/init 
Используйте команду stat, чтобы узнать, использует ли установка Linux SystemV или systemd.

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

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

Опрос служб с помощью systemctl

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

systemctl список-единицы --тип=служба
Вывод команды systemctl list-units, показывающий запущенные и остановленные службы.

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

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

На дисплее отображаются только активные услуги. Чтобы увидеть все службы, нам нужно включить опцию –all.

systemctl список-единицы --все --тип=служба
Вывод команды systemctl list-units, показывающий все службы.

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

systemctl список-единицы --тип=служба --состояние=работает
Вывод команды systemctl list-units, отфильтрованный для отображения только запущенных служб.

Опция состояния может принимать значения «работает», «остановлен», «включен», «отключен» и «неисправен».

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

systemctl список-единицы --неудачные
Вывод команды systemctl list-units, отфильтрованный для отображения только невыполненных служб. Неисправных служб нет.

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

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

systemctl список-зависимости sshd.service
Вывод команды systemctl list-dependencies, показывающий зависимости для службы sshd.

Зависимости имеют цветной круг, отображающий их статус. Может быть:

  • Белый круг: Неактивно или находится на обслуживании
  • Зеленая точка: Объект.
  • Белая точка: Деактивация.
  • Красная точка: Не удалось или произошла ошибка.

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

systemctl эс-включен htg-example.service
Использование systemctl is-enabled для определения того, включена ли конкретная служба.

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

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

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

пот systemctl начинать htg-пример.услуга
Запуск службы с помощью команды systemctl start.

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

пот systemctl статус htg-пример.услуга
Проверка состояния службы с помощью команды systemctl status.

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

пот systemctl останавливаться htg-пример.услуга
Остановка службы с помощью команды systemctl stop.

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

пот systemctl перезапуск htg-пример.услуга
Перезапуск службы с помощью команды systemctl restart.

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

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

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

пот systemctl давать возможность --сейчас htg-пример.услуга
Включение и одновременный запуск службы с помощью команды systemctl enable --now.

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

пот systemctl запрещать htg-пример.услуга
Отключение службы с помощью команды systemctl disable.

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

журналctl  "08:00:00" -или htg-пример.услуга
Использование команды journalctl для отображения записей системного журнала, относящихся к определенной службе.

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

5 1 голосование
Article Rating
Подписаться
Уведомить о
гость

0 Comments
Самый старый
Самый новый Наибольшее количество голосов
онлайн-комментарии
Посмотреть все комментарии