Утилита systemctl#
Утилита systemctl используется для анализа и контроля состояния системы systemd и диспетчера служб. systemctl предоставляет набор команд для управления службами, единицами инициализации, сетевыми соединениями и другими элементами системы. Утилита позволяет пользователям запускать, останавливать, перезапускать, настраивать и получать информацию о службах и единицах инициализации. Она также предоставляет информацию о состоянии системы, журналы и другие системные данные.
Синтаксис systemctl:
systemctl <options> <commands>
Где:
<options>- опции;<commands>- команды.
Часто используемые опции утилиты представлены в таблице ниже.
Опция |
Описание |
|---|---|
|
Отображение неактивных объектов и объектов, следующих за другими |
|
Отображение обратных зависимостей между объектами |
|
Вывод только значений, пропуск названий свойств и |
|
Указание типа сокета при отображении сокетов |
|
Отображение списка объектов, находящихся в состоянии сбоя |
|
Занесение в журнал аудита вводимой пользователем причины остановки службы. Используется совместно с командой |
Часто используемые команды утилиты представлены в таблице ниже.
Команда |
Описание |
|---|---|
|
Активировать указанный шаблон ( |
|
Остановить (деактивировать) один или несколько указанных шаблонов ( |
|
Остановить и перезапустить указанный шаблон ( |
|
Разрешить заданному |
|
Запретить заданному |
|
Отобразить информацию о состоянии работы всей системы или указанных шаблонов ( |
|
Отобразить свойства одного или нескольких |
|
Послать системный сигнал одному или более процессам |
Команды, которые можно использовать для управления питанием системы:
Команда |
Описание |
|---|---|
|
Завершение работы и остановка системы, а также вывод соответствующего сообщения для всех пользователей. Данная операция остановит ядро операционной системы после завершения работы, оставив аппаратное обеспечение включенным. Команда асинхронна, т.е. будет возвращена после постановки в очередь, не дожидаясь завершения. В сочетании с |
|
Завершение работы и выключение питания системы, а также вывод соответствующего сообщения для всех пользователей. Команда асинхронна. В этой команде используются |
|
Завершение работы и перезагрузка системы, вывод соответствующего сообщения для всех пользователей. Команда асинхронна. Если указан параметр switch |
|
Приостановка работы системы. Данная команда является асинхронной. Если указан параметр |
|
Перевод системы в режим гибернации. Команда является асинхронной. Выполняет |
|
Перевод системы в режим гибернации и приостановка ее работы. Команда является асинхронной, выполняет |
|
Обновление конфигурации |
При необходимости указания причины остановки службы для внесения ее в журнал аудита воспользуйтесь командой:
systemctl stop <service> --stop-reason="<text_of_the_reason>"
Где:
<service>- служба, которую необходимо остановить;<text_of_the_reason>- произвольный текст причины остановки.
Успешное выполнение данной команды инициирует внесение записи в файл аудита /var/log/audit/audit.log в следующем формате:
type=SERVICE_STOP msg=audit(1706516441.561:157): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=<service> stop_reason="<text_of_the_reason>" comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
Для всех сервисов, остановленных без указания причины (без задания опции --stop-reason), данное поле будет заполнено как undefined. В случае передачи пустой строки (--stop-reason="") в терминале будет выведена ошибка:
--stop-reason= requires arguments.
Примеры использования#
Для отображения всех запущенных служб в системе введите команду:
systemctl statusДля отображения списка вышедших из строя
unitsвведите команду:systemctl --failedДля запуска
unitвведите команду:systemctl start <unit>Чтобы вывести статус заданного
unit, используйте команду:systemctl status <unit>Чтобы разрешить автозапуск
unitпри загрузке системы, воспользуйтесь командой:systemctl enable <unit>