Версия: 255.6
systemctl — это утилита, предназначенная для управления службами и фоновыми процессами (демонами). Она является ключевым инструментом в дистрибутивах, использующих систему инициализации systemd. Systemd, в свою очередь, отвечает за управление процессами, службами, монтированием файловых систем и другими аспектами системы, включая init-систему и менеджер юнитов.
Контактная информация:
Проект GitHub
Лицензия:
LGPL-2.1-or-later
CC0-1.0
GPL-2.0-or-later
MIT-0
Синтаксис:
systemctl [OPTIONS...] COMMAND ...
Юниты обычно включают следующие типы: службы (.service), точки монтирования (.mount), устройства (.device) и сокеты (.socket).
При использовании systemctl, как правило, необходимо указывать полное имя юнита вместе с его суффиксом, например, sshd.socket. Однако в некоторых командах systemctl допустимы сокращенные формы:
.service
по умолчанию. Например, netctl
и netctl.service
эквивалентны..mount
. Например, указание /home
эквивалентно home.mount
..device
, поэтому /dev/sda2
эквивалентно dev-sda2.device
.Команды управления юнитами:
Команда | Описание |
---|---|
list-units [ШАБЛОН...] | Показать список юнитов, загруженных в память. |
list-automounts [ШАБЛОН...] | Вывести список автоматических точек монтирования, отсортированных по пути. |
list-paths [ШАБЛОН...] | Показать список юнитов path, отсортированных по пути. |
list-sockets [ШАБЛОН...] | Вывести список юнитов socket, отсортированных по адресу. |
list-timers [ШАБЛОН...] | Показать список таймеров, отсортированных по ближайшему срабатыванию. |
is-active ШАБЛОН... | Проверить, активны ли указанные юниты. |
is-failed [ШАБЛОН...] | Проверить, завершились ли юниты с ошибкой или система находится в деградированном состоянии. |
status [ШАБЛОН...|PID...] | Показать текущее состояние одного или нескольких юнитов. |
show [ШАБЛОН...|JOB...] | Отобразить свойства одного или нескольких юнитов/задач или самого менеджера юнитов. |
cat ШАБЛОН... | Показать файлы конфигурации и дополнительные параметры указанных юнитов. |
help ШАБЛОН...|PID... | Показать справку (мануал) для одного или нескольких юнитов. |
list-dependencies [ЮНИТ...] | Рекурсивно показать зависимости юнитов и юниты, которые от них зависят. |
start ЮНИТ... | Запустить (активировать) один или несколько юнитов. |
stop ЮНИТ... | Остановить (деактивировать) один или несколько юнитов. |
reload ЮНИТ... | Перезагрузить один или несколько юнитов. |
restart ЮНИТ... | Запустить или перезапустить один или несколько юнитов. |
try-restart ЮНИТ... | Перезапустить юниты, если они активны. |
reload-or-restart ЮНИТ... | Перезагрузить юниты, если возможно, иначе запустить или перезапустить. |
try-reload-or-restart ЮНИТ... | Если юниты активны, перезагрузить их, если поддерживается, иначе перезапустить. |
isolate ЮНИТ | Запустить указанный юнит и остановить все остальные. |
kill ЮНИТ... | Отправить сигнал процессам указанного юнита. |
clean ЮНИТ... | Очистить временные файлы, кэш, состояние, логи или конфигурацию юнита. |
freeze ШАБЛОН... | Заморозить выполнение процессов юнита. |
thaw ШАБЛОН... | Возобновить выполнение замороженного юнита. |
set-property ЮНИТ СВОЙСТВО=ЗНАЧЕНИЕ... | Установить одно или несколько свойств юнита. |
bind ЮНИТ ПУТЬ [ПУТЬ] | Примонтировать каталог хоста в пространство юнита. |
mount-image ЮНИТ ПУТЬ [ПУТЬ [ОПЦИИ]] | Примонтировать образ из хоста в пространство юнита. |
service-log-level СЕРВИС [УРОВЕНЬ] | Получить или установить порог логирования для сервиса. |
service-log-target СЕРВИС [ЦЕЛЬ] | Получить или установить целевой журнал для сервиса. |
reset-failed [ШАБЛОН...] | Сбросить состояние сбоев для всех, одного или нескольких юнитов. |
whoami [PID...] | Определить, к какому юниту относится вызывающий процесс или указанные PID. |
Команды управления файлами юнитов:
Команда | Описание |
---|---|
list-unit-files [ШАБЛОН...] | Показать список установленных файлов юнитов. |
enable [ЮНИТ...|ПУТЬ...] | Включить один или несколько файлов юнитов. |
disable ЮНИТ... | Отключить один или несколько файлов юнитов. |
reenable ЮНИТ... | Переактивировать один или несколько файлов юнитов. |
preset ЮНИТ... | Включить/отключить один или несколько файлов юнитов на основе предустановленных конфигураций. |
preset-all | Включить/отключить все файлы юнитов на основе предустановленных конфигураций. |
is-enabled ЮНИТ... | Проверить, включены ли указанные файлы юнитов. |
mask ЮНИТ... | Замаскировать один или несколько юнитов (запретить их запуск). |
unmask ЮНИТ... | Размаскировать один или несколько юнитов. |
link ПУТЬ... | Создать символическую ссылку на один или несколько файлов юнитов в путь поиска. |
revert ЮНИТ... | Восстановить один или несколько файлов юнитов до версии, поставляемой вендором. |
add-wants ЦЕЛЬ ЮНИТ... | Добавить зависимость Wants= для целевого юнита на указанные юниты. |
add-requires ЦЕЛЬ ЮНИТ... | Добавить зависимость Requires= для целевого юнита на указанные юниты. |
edit ЮНИТ... | Открыть для редактирования один или несколько файлов юнитов. |
get-default | Показать название юнита, установленного по умолчанию. |
set-default ЦЕЛЬ | Установить целевой юнит по умолчанию. |
Команды управления машинами:
Команда | Описание |
---|---|
list-machines [ШАБЛОН...] | Показать список локальных контейнеров и хостов. |
Команды управления заданиями:
Команда | Описание |
---|---|
list-jobs [ШАБЛОН...] | Показать список заданий. |
cancel [ЗАДАНИЕ...] | Отменить все, одно или несколько заданий. |
Команды управления окружением:
Команда | Описание |
---|---|
show-environment | Вывести текущее окружение. |
set-environment ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ... | Установить одну или несколько переменных окружения. |
unset-environment ПЕРЕМЕННАЯ... | Удалить одну или несколько переменных окружения. |
import-environment ПЕРЕМЕННАЯ... | Импортировать все или некоторые переменные окружения. |
Команды управления состоянием менеджера:
Команда | Описание |
---|---|
daemon-reload | Перезагрузить конфигурацию менеджера systemd. |
daemon-reexec | Перезапустить менеджер systemd. |
log-level [УРОВЕНЬ] | Получить/установить порог логирования для менеджера. |
log-target [ЦЕЛЬ] | Получить/установить цель логирования для менеджера. |
service-watchdogs [BOOL] | Включить/выключить механизм контроля служб (watchdog). |
Системные команды:
Команда | Описание |
---|---|
is-system-running | Проверить, полностью ли запущена система. |
default | Перейти в стандартный режим работы системы. |
rescue | Перейти в режим восстановления. |
emergency | Перейти в аварийный режим. |
halt | Остановить систему. |
poweroff | Выключить систему. |
reboot | Перезагрузить систему. |
kexec | Перезагрузить систему с использованием kexec. |
soft-reboot | Перезагрузить только пользовательское пространство (userspace). |
exit [КОД ВЫХОДА] | Запросить выход из пользовательского окружения или контейнера. |
switch-root [ROOT [INIT]] | Переключить корневую файловую систему. |
suspend | Перевести систему в режим ожидания (suspend). |
hibernate | Перевести систему в спящий режим (hibernate). |
hybrid-sleep | Комбинированный режим сна (гибернация + suspend). |
suspend-then-hibernate | Перевести систему в режим ожидания, затем в гибернацию после указанного времени. |
Опции (systemctl):
Опция | Описание |
---|---|
-h, --help | Показать справку. |
--version | Показать версию пакета. |
--system | Подключиться к системному менеджеру. |
--user | Подключиться к менеджеру пользовательских служб. |
-H, --host=[ПОЛЬЗОВАТЕЛЬ@]ХОСТ | Выполнить операцию на удалённом хосте. |
-M, --machine=КОНТЕЙНЕР | Выполнить операцию в локальном контейнере. |
-t, --type=ТИП | Показать юниты определённого типа. |
--state=СОСТОЯНИЕ | Показать юниты с определённым состоянием (LOAD, SUB или ACTIVE). |
--failed | Сокращённая форма --state=failed. |
-p, --property=ИМЯ | Показать только указанное свойство. |
-P ИМЯ | Эквивалентно --value --property=ИМЯ. |
-a, --all | Показать все свойства/юниты в памяти, включая неактивные. |
-l, --full | Не сокращать имена юнитов в выводе. |
-r, --recursive | Показать список юнитов на хосте и в локальных контейнерах. |
--reverse | Показать обратные зависимости в list-dependencies. |
--with-dependencies | Показать зависимости юнита в status, cat, list-units, list-unit-files. |
--job-mode=РЕЖИМ | Определить, как обрабатывать уже поставленные в очередь задачи при добавлении новой. |
-T, --show-transaction | При постановке задачи показать всю транзакцию. |
--show-types | При отображении сокетов явно указывать их тип. |
--check-inhibitors=РЕЖИМ | Проверять ли блокировки перед выключением, сном или гибернацией. |
-i | Эквивалентно --check-inhibitors=no. |
--kill-whom=КТО | Указать, кому отправлять сигнал. |
--kill-value=ЦЕЛОЕ | Значение сигнала для постановки в очередь. |
-s, --signal=СИГНАЛ | Указать, какой сигнал отправить. |
--what=РЕСУРСЫ | Указать, какие типы ресурсов удалить. |
--now | Запустить или остановить юнит сразу после включения или отключения. |
--dry-run | Только вывести список действий без их выполнения (доступно для halt, poweroff, reboot и других команд). |
-q, --quiet | Подавить вывод сообщений. |
--no-warn | Подавить некоторые предупреждения. |
--wait | Для (пере)запуска ожидать завершения службы. |
--no-block | Не ждать завершения операции. |
--no-wall | Не отправлять сообщение wall перед выключением/перезагрузкой. |
--no-reload | Не перезагружать systemd после включения/отключения юнитов. |
--legend=BOOL | Включить/выключить легенду (заголовки столбцов и подсказки). |
--no-pager | Не передавать вывод в pager. |
--no-ask-password | Не запрашивать системные пароли. |
--global | Глобальное редактирование/включение/отключение юнитов пользователей. |
--runtime | Временное редактирование/включение/отключение юнитов (до следующей перезагрузки). |
-f, --force | При включении юнитов перезаписывать существующие ссылки. При завершении работы системы выполнить действие немедленно. |
--preset-mode= | Применить только enable, disable или все предустановки. |
--root=ПУТЬ | Редактировать/включать/отключать юниты в указанной корневой директории. |
--image=ПУТЬ | Редактировать/включать/отключать юниты в указанном образе диска. |
--image-policy=ПОЛИТИКА | Определить правила работы с образом диска. |
-n, --lines=ЧИСЛО | Количество записей журнала для отображения. |
-o, --output=ФОРМАТ | Изменить режим вывода журнала (short, json, cat и др.). |
--firmware-setup | Попросить прошивку показать меню настроек при следующей загрузке. |
--boot-loader-menu=ВРЕМЯ | Перейти в меню загрузчика при следующей загрузке. |
--boot-loader-entry=ИМЯ | Загрузиться с определённой записью в загрузчике. |
--plain | Вывести зависимости юнита списком вместо дерева. |
--timestamp=ФОРМАТ | Изменить формат вывода времени (pretty, unix, utc и др.). |
--read-only | Создать монтирование bind в режиме только для чтения. |
--mkdir | Создать директорию перед монтированием, если она отсутствует. |
--marked | Перезапустить/перезагрузить ранее помеченные юниты. |
--drop-in=ИМЯ | Редактировать юниты, используя указанное имя drop-in. |
--when=ВРЕМЯ | Запланировать выполнение halt, power-off, reboot, kexec на указанное время. |
Для проверки текущего статуса юнита следует открыть терминал и ввести:
sudo systemctl status cups
Где:
Примерный вывод:
● cups.service - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled; preset: disabled)
Active: active (running) since Thu 2025-01-30 09:04:08 +06; 4h 9min ago
TriggeredBy: ● cups.socket
● cups.path
Docs: man:cupsd(8)
Main PID: 7131 (cupsd)
Status: "Scheduler is running..."
Tasks: 1 (limit: 4606)
Memory: 3.0M (peak: 3.2M)
CPU: 25ms
CGroup: /system.slice/cups.service
└─7131 /usr/bin/cupsd -l
янв 30 09:04:08 ublinux-11923 systemd[1]: Starting CUPS Scheduler...
янв 30 09:04:08 ublinux-11923 systemd[1]: Started CUPS Scheduler.
Где:
systemctl enable
;man cupsd
в терминале;Для запуска юнита следует открыть терминал и ввести:
sudo systemctl start nginx
Если не указывать явный тип юнита, nginx по умолчанию воспринимается как nginx.service. Чтобы запустить юнит другого типа, например .timer или .socket, необходимо указывать его полное имя в команде:
sudo systemctl start backup.timer
Для остановки юнита следует открыть терминал и ввести:
sudo systemctl stop nginx
Для полного перезапуска юнита следует открыть терминал и ввести:
sudo systemctl restart nginx
Если необходимо перезапустить юнит без полного перезапуска процесса (только заставить приложение перечитать конфигурационный файл), следует ввести:
sudo systemctl reload nginx
restart = stop + start
reload = продолжить работу + перечитать файлы конфигурации
Внимание! Если система загружена в режимах песочниц, то для автоматического запуска юнитов рекомендуется воспользоваться графической утилитой "Службы и процессы systemd" или консольной утилитой "UBConfig".
При добавлении юнита в автозапуск с помощью systemctl (если система работает в режимах песочниц) несохраненные настройки будут удалены после перезагрузки, и сервис не будет запущен автоматически.
Для включения юнита в автозапуск следует открыть терминал и ввести:
sudo systemctl enable nginx
Если необходимо добавить юнит в автозапуск и сразу запустить его, следует ввести:
sudo systemctl enable --now nginx
Для отключения автоматического запуска юнита следует открыть терминал и ввести:
sudo systemctl disable nginx
При необходимости отключения и повторного включения в автозапуск юнита, следует выполнить:
sudo systemctl reenable nginx
Для предотвращения запуска юнита вручную или в качестве зависимости от любого другого юнита, его следует заблокировать (замаскировать). Для этого необходимо открыть терминал и ввести команду:
sudo systemctl mask nginx
Для снятия блокировки следует выполнить:
sudo systemctl unmask nginx
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Внимание! Данный системный модуль может быть уже установлен.
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены после перезагрузки.
Если режим загрузки другой, то рекомендуется воспользоваться утилитой "Сохранение изменений" до перезагрузки системы.