systemctl - Управление системой systemd и менеджером служб
СИНТАКСИС
systemctl [ОПЦИИ...] КОМАНДА [ЮНИТ...]
ОПИСАНИЕ
systemctl может использоваться для проверки и управления состоянием системы и менеджера служб "systemd". Обратитесь к [systemd]({filename}../../systemd)(1) для ознакомления с основными понятиями и функциональными возможностями, которыми управляет этот инструмент.
КОМАНДЫ
Следующие команды поддерживаются:
Команды для работы с юнитами (просмотр и изменение)
list-units [ШАБЛОН...]
Отображает список юнитов, которые в настоящее время находятся в памяти systemd. Это включает юниты, на которые ссылаются напрямую или через зависимости, юниты, закрепленные приложениями программным способом, или юниты, которые были активны в прошлом и завершились с ошибкой. По умолчанию отображаются только юниты, которые активны, имеют ожидающие задания или завершились с ошибкой; это можно изменить с помощью опции --all. Если указаны один или несколько ШАБЛОНОВ, отображаются только юниты, соответствующие одному из них. Отображаемые юниты дополнительно фильтруются с помощью опций --type= и --state=, если они указаны.
Обратите внимание, что эта команда не отображает шаблоны юнитов, а только экземпляры шаблонов юнитов. Шаблоны юнитов, которые не были созданы, не могут быть запущены и, следовательно, не будут отображаться в выходных данных этой команды. В частности, это означает, что [email protected] никогда не будет отображаться в этом списке, если он не был создан, например, как _. Используйте list-unit-files (см. ниже) для просмотра установленных файлов шаблонов юнитов.
Выводит результаты, аналогичные следующим:
UNIT LOAD ACTIVE SUB DESCRIPTION
sys-module-fuse.device loaded active plugged /sys/module/fuse
-.mount loaded active mounted Root Mount
boot-efi.mount loaded active mounted /boot/efi
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
● \_ loaded failed failed User Manager for UID 1000
...
systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories
LOAD = Отражает, была ли правильно загружена дескрипция юнита.
ACTIVE = Высокоуровневое состояние активации юнита, т.е. обобщение SUB.
SUB = Низкоуровневое состояние активации юнита, значения зависят от типа юнита.
123 загруженных юнита. Используйте --all, чтобы увидеть также загруженные, но неактивные юниты.
Чтобы отобразить все установленные файлы юнитов, используйте 'systemctl list-unit-files'.
Заголовок и последний юнит данного типа подчеркиваются, если терминал это поддерживает. Рядом с службами, которые были замаскированы, не найдены или в противном случае завершились с ошибкой, отображается цветная точка.
Столбец LOAD отображает состояние загрузки, которое может быть одним из следующих: loaded, not-found, bad-setting, error, masked. Столбец ACTIVE отображает общее состояние устройства, которое может быть одним из следующих:
Таблица 1. Состояния устройства ACTIVE
┌──────────────┬─────────────────────────────────────┐
│ Состояние │ Описание │
├──────────────┼─────────────────────────────────────┤
│ active │ Запущено, подключено, включено в сеть и т. д., в зависимости от типа устройства. │
├──────────────┼─────────────────────────────────────┤
│ inactive │ Остановлено, отключено, исключено из сети и т. д., в зависимости от типа устройства. │
├──────────────┼─────────────────────────────────────┤
│ failed │ Похоже на inactive, но устройство вышло из строя (процесс вернул код ошибки при завершении, аварийно завершился, операция завершилась с истечением времени ожидания или после слишком большого количества перезапусков). │
├──────────────┼─────────────────────────────────────┤
│ activating │ Переход из состояния inactive в состояние active. │
├──────────────┼─────────────────────────────────────┤
│ deactivating │ Переход из состояния active в состояние inactive. │
├──────────────┼─────────────────────────────────────┤
│ maintenance │ Устройство находится в неактивном состоянии, и выполняется операция технического обслуживания. │
├──────────────┼─────────────────────────────────────┤
│ reloading │ Устройство находится в активном состоянии, и его конфигурация перезагружается. │
├──────────────┼─────────────────────────────────────┤
│ refreshing │ Устройство находится в активном состоянии, и в его пространстве имен активируется новый том. │
└──────────────┴─────────────────────────────────────┘
Столбец SUB отображает подробное состояние конкретного типа устройства, возможные значения варьируются в зависимости от типа устройства. Список возможных состояний LOAD, ACTIVE и SUB не является постоянным, и новые версии systemd могут как добавлять, так и удалять значения.
systemctl --state=help
команда может использоваться для отображения текущего набора возможных значений.
Это команда по умолчанию.
list-automounts [PATTERN...]
Список юнитов автоматического монтирования, находящихся в памяти, отсортированный по пути монтирования. Если указаны один или несколько шаблонов PATTERN, отображаются только юниты автоматического монтирования, соответствующие одному из них. Вывод аналогичен следующему:
WHAT WHERE MOUNTED IDLE TIMEOUT UNIT
/dev/sdb1 /mnt/test no 120s mnt-test.automount
binfmt_misc /proc/sys/fs/binfmt_misc yes 0 proc-sys-fs-binfmt_misc.automount
2 юнита автоматического монтирования перечислены.
Также смотрите --show-types, --all и --state=.
Добавлено в версии 252.
list-paths [PATTERN...]
Список юнитов путей, находящихся в памяти, отсортированный по пути. Если указаны один или несколько шаблонов PATTERN, отображаются только юниты путей, соответствующие одному из них. Вывод аналогичен следующему:
PATH CONDITION UNIT ACTIVATES
/run/systemd/ask-password DirectoryNotEmpty systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service
/run/systemd/ask-password DirectoryNotEmpty systemd-ask-password-wall.path systemd-ask-password-wall.service
/var/cache/cups/org.cups.cupsd PathExists cups.path cups.service
3 юнита путей перечислены.
Также смотрите --show-types, --all и --state=.
Добавлено в версии 254.
list-sockets [PATTERN...]
Список юнитов сокетов, находящихся в памяти, отсортированный по адресу прослушивания. Если указаны один или несколько шаблонов PATTERN, отображаются только юниты сокетов, соответствующие одному из них. Вывод аналогичен следующему:
LISTEN UNIT ACTIVATES
kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
/dev/rfkill systemd-rfkill.socket systemd-rfkill.service
...
5 юнитов сокетов перечислены.
Примечание: поскольку адреса могут содержать пробелы, этот вывод не подходит для
программного использования.
Также смотрите --show-types, --all и --state=.
Добавлено в версии 202.
list-timers [PATTERN...]
Список юнитов таймеров, находящихся в памяти, отсортированный по времени их следующего срабатывания. Если указаны один или несколько шаблонов PATTERN, отображаются только юниты, соответствующие одному из них. Вывод аналогичен следующему:
NEXT LEFT LAST PASSED UNIT ACTIVATES
- - Thu 2017-02-23 13:40:29 EST 3 days ago ureadahead-stop.timer ureadahead-stop.service
Sun 2017-02-26 18:55:42 EST 1min 14s left Thu 2017-02-23 13:54:44 EST 3 days ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Sun 2017-02-26 20:37:16 EST 1h 42min left Sun 2017-02-26 11:56:36 EST 6h ago apt-daily.timer apt-daily.service Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago snapd.refresh.timer snapd.refresh.service
NEXT отображает следующее время запуска таймера.
LEFT отображает, сколько времени осталось до следующего запуска таймера.
LAST отображает время последнего запуска таймера.
PASSED отображает, сколько времени прошло с момента последнего запуска таймера.
UNIT отображает имя таймера.
ACTIVATES отображает имя службы, которую активирует таймер при запуске.
Также см. --all и --state=.
Добавлено в версии 209.
is-active PATTERN...
Проверяет, активны ли какие-либо из указанных юнитов (т.е. запущены). Возвращает код выхода 0, если хотя бы один из них активен, или ненулевое значение в противном случае. Если не указан флаг --quiet, также выводит текущее состояние юнита в стандартный вывод.
is-failed [PATTERN...]
Проверяет, находится ли какой-либо из указанных юнитов в состоянии "failed". Если ни один юнит не указан, проверяет, есть ли неудавшиеся юниты или циклы зависимостей, что соответствует состоянию "degraded", возвращаемому is-system-running. Возвращает код выхода 0, если хотя бы один из них неудачен, в противном случае возвращает ненулевое значение. Если не указан флаг --quiet, также выводит текущее состояние юнита или системы в стандартный вывод.
Добавлено в версии 197.
status [PATTERN...|PID...]
Отображает информацию о текущем состоянии всей системы или одного или нескольких юнитов, за которой следуют последние данные журнала. Если позиционные аргументы не указаны и фильтр юнитов не задан с помощью --type=, --state= или --failed, отображает состояние всей системы. Если используется в сочетании с --all, отображает состояние всех юнитов. Если указаны позиционные аргументы, каждый позиционный аргумент рассматривается либо как имя юнита для отображения, либо как шаблон glob для отображения юнитов, имена которых соответствуют этому шаблону, либо как PID для отображения юнита, содержащего этот PID. При использовании --type=, --state= или --failed юниты также фильтруются по ТИПУ и АКТИВНОМУ состоянию.
Эта функция предназначена для генерации удобочитаемого вывода. Если вам нужен вывод, который можно программно обрабатывать, используйте команду show. По умолчанию эта функция отображает только 10 строк вывода и обрезает строки, чтобы они помещались в окне терминала. Это можно изменить с помощью --lines и --full, см. выше. Кроме того, journalctl --unit=NAME или journalctl --user-unit=NAME используют аналогичный фильтр для сообщений и могут быть более удобными.
Обратите внимание, что эта операция отображает только информацию о состоянии во время выполнения, т.е. информацию о текущем запуске юнита (если он запущен) или о последнем запуске (если он больше не запущен и не был удален из памяти). Информацию о более ранних запусках, запусках с предыдущих загрузок системы или предыдущих запусках, которые уже были удалены из памяти, можно получить с помощью journalctl --unit=.
systemd неявно загружает юниты по мере необходимости, поэтому простое выполнение команды status
попытается загрузить файл. Таким образом, эта команда не полезна для определения того, был ли
юнит уже загружен или нет. Юниты также могут быть быстро выгружены после завершения операции,
если нет причин хранить их в памяти.
Пример 1. Пример вывода команды systemctl status
$ systemctl status bluetooth
● bluetooth.service - Служба Bluetooth
Загружена: загружена (/usr/lib/systemd/system/bluetooth.service; включена; предустановка: включена)
Активна: активна (работает) с Сре 2017-01-04 13:54:04 EST; 1 неделя 0 дней назад
Документация: man:bluetoothd(8)
Основной PID: 930 (bluetoothd)
Статус: "Работает"
Задачи: 1
Память: 648,0 КБ
ЦП: 435 мс
Группа: /system.slice/bluetooth.service
└─930 /usr/lib/bluetooth/bluetoothd
12 янв 10:46:45 example.com bluetoothd[8900]: Недостаточно свободных дескрипторов для регистрации службы 12 янв 10:46:45 example.com bluetoothd[8900]: Служба текущего времени не может быть зарегистрирована 12 янв 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Ошибка ввода/вывода (5)
Точка ("●") использует цвет на поддерживаемых терминалах, чтобы с первого взгляда показать состояние юнита. Наряду со своим цветом, ее форма меняется в зависимости от состояния: "неактивна" или "в режиме обслуживания" — белый круг ("○"), "активна" — зеленый кружок ("●"), "отключается" — белый кружок, "неудачна" или "ошибка" — красный крестик ("×"), а "перезагружается" или "обновляется" — зеленый кружок со стрелкой по часовой стрелке ("↻").
Строка "Загружена:" в выводе будет показывать "загружена", если юнит был загружен в память. Другие возможные значения для "Загружена:" включают: "ошибка", если при загрузке возникла проблема, "не найдена", если файл юнита для этого юнита не найден, "неправильная настройка", если важную настройку в файле юнита не удалось проанализировать, и "замаскирована", если файл юнита был замаскирован. Наряду с отображением пути к файлу юнита, эта строка также показывает состояние включения. Включенные юниты включены в сеть зависимостей между юнитами и, следовательно, запускаются при загрузке или каким-либо другим способом активации. См. полную таблицу возможных состояний включения, включая определение "замаскирована", в документации для команды is-enabled.
Строка "Активна:" показывает активное состояние. Значение обычно "активна" или "неактивна". Активно может означать запущено, привязано, подключено и т. д., в зависимости от типа юнита. Юнит также может находиться в процессе изменения состояния, сообщая о состоянии "активируется" или "деактивируется". Специальное состояние "неудачно" вводится, когда служба каким-либо образом не выполнилась, например, из-за сбоя, завершения с кодом ошибки или превышения времени ожидания. Если состояние "неудачно" достигнуто, причина будет записана в журнал для последующего использования.
show [PATTERN...|JOB...]
Показать свойства одного или нескольких юнитов, заданий или самого менеджера. Если аргумент не указан, будут показаны свойства менеджера. Если указано имя юнита, будут показаны свойства юнита, а если указан идентификатор задания, будут показаны свойства задания. По умолчанию пустые свойства скрываются. Используйте --all, чтобы их показать. Чтобы выбрать определенные свойства для отображения, используйте --property=. Эта команда предназначена для использования, когда требуется вывод, пригодный для компьютерной обработки. Используйте status, если вам нужен форматированный вывод для чтения человеком.
Многие свойства, отображаемые systemctl, напрямую соответствуют настройкам конфигурации системы и менеджера служб, а также его файлам модулей. Обратите внимание, что свойства, отображаемые этой командой, обычно представляют собой более низкоуровневые, нормализованные версии исходных параметров конфигурации и отображают состояние во время выполнения в дополнение к конфигурации. Например, свойства, отображаемые для модулей служб, включают текущий идентификатор основного процесса службы как «MainPID» (который является состоянием во время выполнения), а параметры времени всегда отображаются как свойства, заканчивающиеся суффиксом «…USec», даже если соответствующие параметры конфигурации заканчиваются суффиксом «…Sec», поскольку микросекунда является нормализованной единицей времени, используемой внутренне системой и менеджером служб.
Для получения подробной информации о многих из этих свойств обратитесь к документации интерфейса D-Bus, который лежит в основе этих свойств: org.freedesktop.systemd1(5).
^ at PATTERN...
Показать файлы, соответствующие одному или нескольким модулям. Выводит «fragment» и «drop-ins» (исходные файлы) модулей. Каждый файл предваряется комментарием, который включает имя файла. Обратите внимание, что это показывает содержимое файлов на диске, которое может не соответствовать пониманию этих модулей менеджером служб, если какие-либо файлы модулей были обновлены на диске, и команда daemon-reload не была выполнена после этого.
Добавлено в версии 209.
^ elp PATTERN...|PID...
Показать страницы руководства для одного или нескольких модулей, если они доступны. Если указан PID, отображаются страницы руководства для модуля, к которому принадлежит процесс.
Добавлено в версии 185.
^ ist-dependencies [UNIT...]
Показывает модули, необходимые и требуемые указанными модулями. Рекурсивно перечисляет модули, следующие за зависимостями Requires=, Requisite=, Wants=, ConsistsOf=, BindsTo= и Upholds=. Если не указаны модули, подразумевается default.target.
Отображаемые модули дополнительно фильтруются с помощью опций --type= и --state=, если они указаны. Обратите внимание, что в этом случае мы не сможем использовать древовидную структуру, поэтому подразумевается --plain.
По умолчанию рекурсивно разворачиваются только модули-цели. При передаче параметра --all все остальные модули также рекурсивно разворачиваются.
Опции --reverse, --after и --before могут использоваться для изменения типов отображаемых зависимостей.
Обратите внимание, что эта команда перечисляет только модули, которые в настоящее время загружены в память менеджером служб. В частности, эта команда не подходит для получения полного списка всех обратных зависимостей от конкретного модуля, поскольку она не будет перечислять зависимости, объявленные модулями, которые в настоящее время не загружены.
Добавлено в версии 198.
^ tart PATTERN...
Запустить (активировать) один или несколько модулей, указанных в командной строке.
Обратите внимание, что шаблоны имен модулей расширяются до имен модулей, которые в настоящее время находятся в памяти. Модули, которые не активны и не находятся в состоянии сбоя, обычно не находятся в памяти и не будут соответствовать каким-либо шаблонам. Кроме того, в случае экземплярированных модулей systemd часто не знает имя экземпляра, пока экземпляр не будет запущен. Поэтому использование шаблонов с start имеет ограниченную полезность. Кроме того, вторичные псевдонимы модулей не учитываются.
Опция --all может использоваться для выполнения операций также и с неактивными юнитами, на которые ссылаются другие загруженные юниты. Следует отметить, что это не то же самое, что и выполнение операций со «всеми» возможными юнитами, поскольку, как описано в предыдущем абзаце, такой список не имеет четкого определения. Тем не менее, команда systemctl start --all GLOB может быть полезна, если все юниты, соответствующие заданному шаблону, включены в какой-либо известный загруженный таргет.
^ top PATTERN...
Останавливает (деактивирует) один или несколько юнитов, указанных в командной строке.
Эта команда завершится ошибкой, если юнит не существует или если остановка юнита запрещена (см. RefuseManualStop= в systemd.unit(5)). Она не завершится ошибкой, если какие-либо из команд, настроенных для остановки юнита (ExecStop= и т. д.), завершатся с ошибкой, поскольку менеджер все равно принудительно завершит работу юнита.
Если юнит, который останавливается, все еще может быть активирован другими юнитами, будет показано предупреждение с именами юнитов-активаторов. --no-warn может использоваться для подавления предупреждения.
^ eload PATTERN...
Просит все юниты, перечисленные в командной строке, перезагрузить свою конфигурацию. Обратите внимание, что это перезагрузит конфигурацию, специфичную для сервиса, а не файл конфигурации юнита systemd. Если вы хотите, чтобы systemd перезагрузил файл конфигурации юнита, используйте команду daemon-reload. Другими словами: в примере с Apache эта команда перезагрузит httpd.conf веб-сервера Apache, а не файл юнита apache.service systemd.
Эту команду не следует путать с командой daemon-reload.
^ estart PATTERN...
Останавливает и затем запускает один или несколько юнитов, указанных в командной строке. Если юниты еще не запущены, они будут запущены.
Обратите внимание, что перезапуск юнита с помощью этой команды не обязательно приводит к полной очистке всех ресурсов юнита перед его повторным запуском. Например, хранилище дескрипторов файлов, специфичное для сервиса (см. FileDescriptorStoreMax= в systemd.service(5)), останется нетронутым, пока у юнита есть ожидающая задача, и очищается только тогда, когда юнит полностью остановлен и нет ожидающих задач. Если предполагается, что хранилище дескрипторов файлов также должно быть очищено во время операции перезапуска, следует выдать явную команду systemctl stop, а затем systemctl start.
^ ry-restart PATTERN...
Останавливает и затем запускает один или несколько юнитов, указанных в командной строке, если юниты запущены. Ничего не делает, если юниты не запущены.
^ eload-or-restart PATTERN...
Перезагружает один или несколько юнитов, если они это поддерживают. Если нет, останавливает и затем запускает их. Если юниты еще не запущены, они будут запущены.
Эта команда имеет несколько иную функциональность при использовании в сочетании с --marked, см. ниже.
^ ry-reload-or-restart PATTERN...
Перезагружает один или несколько юнитов, если они это поддерживают. Если нет, останавливает и затем запускает их. Ничего не делает, если юниты не запущены.
Добавлено в версии 229.
isolate UNIT
Запускает указанную в командной строке единицу и ее зависимости, а также останавливает все остальные, если только у них не установлено IgnoreOnIsolate=yes (см. systemd.unit(5)). Если указано имя единицы без расширения, предполагается расширение ".target".
Эта команда опасна, поскольку она немедленно остановит процессы, которые не включены в новую целевую установку, возможно, включая графическую среду или терминал, который вы в данный момент используете.
Обратите внимание, что эта операция разрешена только для единиц, для которых включена опция AllowIsolate=. Подробности см. в systemd.unit(5).
kill PATTERN...
Отправляет UNIX-сигнал процесса одной или нескольким процессам единицы. Используйте --kill-whom= для выбора процесса, которому следует отправить сигнал. Используйте --signal= для выбора отправляемого сигнала. Сочетайте с --kill-value= для постановки в очередь POSIX-сигнала реального времени с соответствующим значением.
clean PATTERN...
Удаляет данные конфигурации, состояния, кэша, журналы, данные среды выполнения или хранилище файловых дескрипторов указанных единиц. Используйте --what= для выбора типа удаляемых ресурсов. Для сервисных единиц это можно использовать для удаления каталогов, настроенных с помощью ConfigurationDirectory=, StateDirectory=, CacheDirectory=, LogsDirectory= и RuntimeDirectory=, см. systemd.exec(5) для получения подробной информации. Это также можно использовать для очистки хранилища файловых дескрипторов, как это предусмотрено с помощью FileDescriptorStoreMax=, см. systemd.service(5) для получения подробной информации. Для таймерных единиц это можно использовать для очистки постоянных данных временных меток, если используется Persistent= и выбрано --what=state, см. systemd.timer(5) для получения подробной информации. Эта команда применима только к единицам, которые используют одну из этих настроек. Если --what= не указано, удаляются данные кэша и среды выполнения, а также хранилище файловых дескрипторов (поскольку эти три типа ресурсов обычно избыточны и воспроизводимы при следующем вызове единицы). Несколько значений можно разделить запятыми.
Обратите внимание, что указанные единицы должны быть остановлены, чтобы выполнить эту операцию.
Таблица 2. Возможные значения для --what=
┌─────────────────┬────────────────────────────────────┐
│ Value │ Unit Setting │
├─────────────────┼────────────────────────────────────┤
│ "runtime" │ RuntimeDirectory= │
├─────────────────┼────────────────────────────────────┤
│ "state" │ StateDirectory= │
├─────────────────┼────────────────────────────────────┤
│ "cache" │ CacheDirectory= │
├─────────────────┼────────────────────────────────────┤
│ "logs" │ LogsDirectory= │
├─────────────────┼────────────────────────────────────┤
│ "configuration" │ ConfigurationDirectory= │
├─────────────────┼────────────────────────────────────┤
│ "fdstore" │ FileDescriptorStorePreserve= │
├─────────────────┼────────────────────────────────────┤
│ "all" │ All of the above │
├─────────────────┼────────────────────────────────────┤
│ "help" │ Show the supported values and exit │
└─────────────────┴────────────────────────────────────┘
Добавлено в версии 243.
freeze ПАТТЕРН...
Замораживает один или несколько указанных в командной строке юнитов, используя механизм заморозки cgroup.
Заморозка юнита приведет к приостановке всех процессов, содержащихся в cgroup, соответствующем юниту. Приостановка означает, что процессы этого юнита не будут планироваться для выполнения на ЦП до тех пор, пока они не будут разморожены. Обратите внимание, что эта команда поддерживается только в системах, использующих унифицированную иерархию cgroup. Юнит автоматически размораживается непосредственно перед выполнением задания для этого юнита, например, перед его остановкой.
Добавлено в версии 246.
thaw ПАТТЕРН...
Размораживает (отменяет заморозку) один или несколько указанных в командной строке юнитов.
Это обратная операция команде freeze и возобновляет выполнение процессов в cgroup юнита.
Добавлено в версии 246.
set-property ЮНИТ СВОЙСТВО=ЗНАЧЕНИЕ...
Устанавливает указанные свойства юнита во время выполнения, если это поддерживается. Это позволяет изменять параметры конфигурации, такие как настройки управления ресурсами, во время выполнения. Не все свойства могут быть изменены во время выполнения, но многие настройки управления ресурсами (в основном те, что описаны в systemd.resource-control(5)) могут быть изменены. Изменения применяются немедленно и сохраняются на диске для последующих загрузок, если не указан флаг --runtime, в этом случае настройки применяются только до следующей перезагрузки. Синтаксис присваивания свойств тесно соответствует синтаксису присваиваний в файлах юнитов.
Пример: systemctl set-property foobar.service CPUWeight=200
Если указанный юнит кажется неактивным, изменения будут сохранены только на диске, как описано выше, и, следовательно, они будут действовать при запуске юнита.
Обратите внимание, что эта команда позволяет изменять несколько свойств одновременно, что предпочтительнее, чем устанавливать их по отдельности.
Пример: systemctl set-property foobar.service CPUWeight=200 MemoryMax=2G IPAccounting=yes
Как и в случае с настройками в файле юнита, присвоение пустого значения обычно сбрасывает свойство к значениям по умолчанию.
Пример: systemctl set-property avahi-daemon.service IPAddressDeny=
Добавлено в версии 206.
bind UNIT PATH [PATH]
Создает bind-mount файла или каталога с хоста в указанном пространстве имен юнита.
Первый аргумент пути — это исходный файл или каталог на хосте, второй аргумент пути —
пункт назначения файла или каталога в пространстве имен юнита. Если второй аргумент опущен,
путь назначения в пространстве имен юнита совпадает с исходным путем на хосте. В сочетании
с переключателем --read-only создается bind-mount только для чтения. В сочетании с
переключателем --mkdir путь назначения сначала создается, прежде чем применяется mount.
Обратите внимание, что эта опция в настоящее время поддерживается только для юнитов, работающих в пространстве имен mount (например, с RootImage=, PrivateMounts= и т. д.). Эта команда поддерживает bind-mount каталогов, обычных файлов, узлов устройств, узлов AF_UNIX и FIFO. Bind-mount является временным и отменяется, как только процесс текущего юнита завершается. Обратите внимание, что пространство имен, о котором идет речь здесь, куда будет добавлен bind-mount, — это пространство, в котором работает основной процесс службы. Другие процессы (те, которые запускаются с помощью ExecReload=, ExecStartPre= и т. д.), работают в отдельных пространствах имен.
Если это поддерживается ядром, любое предыдущее монтирование в выбранной целевой точке будет заменено новым монтированием. Если это не поддерживается, любое предыдущее монтирование будет наложено, но останется закрепленным и недоступным.
Добавлено в версии 248.
mount-image UNIT IMAGE [PATH [PARTITION_NAME:MOUNT_OPTIONS]]
Монтирует образ с хоста в указанное пространство имен юнита. Первый аргумент пути — это
исходный образ на хосте, второй аргумент пути — это каталог назначения в пространстве имен
юнита (то есть внутри RootImage=/RootDirectory=). Следующий аргумент, если он есть,
интерпретируется как кортеж, разделенный двоеточием, имени раздела и списка параметров монтирования
для этого раздела, разделенных запятыми. Формат аналогичен настройке MountImages= в файле службы.
В сочетании с переключателем --read-only создается монтирование только для чтения. В сочетании
с переключателем --mkdir путь назначения сначала создается, прежде чем применяется монтирование.
Обратите внимание, что эта опция в настоящее время поддерживается только для юнитов, работающих в пространстве имен mount (то есть с RootImage=, PrivateMounts= и т. д.). Обратите внимание, что пространство имен, о котором идет речь здесь, куда будет добавлено монтирование образа, — это пространство, в котором работает основной процесс службы. Обратите внимание, что пространство имен, о котором идет речь здесь, куда будет добавлен bind-mount, — это пространство, в котором работает основной процесс службы. Другие процессы (те, которые запускаются с помощью ExecReload=, ExecStartPre= и т. д.), работают в отдельных пространствах имен.
Если ядро поддерживает это, любое предыдущее монтирование в указанной целевой точке будет заменено новым монтированием. Если это не поддерживается, любое предыдущее монтирование будет перекрыто, но останется закрепленным и недоступным.
Пример:
systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid
systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img
Добавлено в версии 248.
service-log-level SERVICE [LEVEL]
Если аргумент LEVEL не указан, отображается текущий уровень регистрации, сообщаемый службой SERVICE.
Если указан необязательный аргумент LEVEL, текущий уровень регистрации службы изменяется на LEVEL. Уровень регистрации должен быть типичным уровнем регистрации syslog, т. е. значением в диапазоне от 0 до 7 или одной из строк emerg, alert, crit, err, warning, notice, info, debug; подробности см. в справочной странице syslog(3).
Служба должна иметь соответствующее свойство BusName=destination, а также реализовывать общий интерфейс org.freedesktop.LogControl1(5). (systemctl будет использовать общий протокол D-Bus для доступа к интерфейсу org.freedesktop.LogControl1.LogLevel для имени D-Bus destination.)
Добавлено в версии 247.
service-log-target SERVICE [TARGET]
Если аргумент TARGET не указан, отображается текущая цель регистрации, сообщаемая службой SERVICE.
Если указан необязательный аргумент TARGET, текущая цель регистрации службы изменяется на TARGET. Цель регистрации должна быть одной из строк console (для вывода журнала в стандартный поток ошибок службы), kmsg (для вывода журнала в буфер журнала ядра), journal (для вывода журнала в systemd-journald.service(8) с использованием протокола собственного журнала), syslog (для вывода журнала в классический сокет syslog /dev/log), null (для отсутствия вывода журнала) или auto (для автоматического определения, обычно эквивалентного console, если служба вызывается в интерактивном режиме, и journal или syslog в противном случае).
Для большинства служб имеет смысл только небольшое подмножество целей регистрации. В частности, большинство "обычных" служб должны поддерживать только console, journal и null. Все остальное уместно только для низкоуровневых служб, которые активны на очень ранних этапах загрузки, до установления надлежащей регистрации.
Служба должна иметь соответствующее свойство BusName=destination, а также реализовывать общий интерфейс org.freedesktop.LogControl1(5). (systemctl будет использовать общий протокол D-Bus для доступа к интерфейсу org.freedesktop.LogControl1.LogLevel для имени D-Bus destination.)
Добавлено в версии 247.
reset-failed [PATTERN...]
Сбросить состояние "failed" указанных юнитов или, если имя юнита не указано, сбросить состояние всех юнитов. Когда юнит каким-либо образом завершается с ошибкой (например, процесс завершается с ненулевым кодом ошибки, аварийно завершается или превышает время ожидания), он автоматически переходит в состояние "failed", и его код выхода и статус регистрируются для анализа администратором до тех пор, пока служба не будет остановлена/перезапущена или сброшена с помощью этой команды.
В дополнение к сбросу состояния "failed" юнита также сбрасываются различные другие свойства юнита: счетчик ограничения скорости запуска для всех типов юнитов сбрасывается до нуля, как и счетчик перезапуска для юнитов службы. Таким образом, если ограничение запуска юнита (как настроено с помощью StartLimitIntervalSec=/StartLimitBurst=) достигнуто, и юнит отказывается запускаться снова, используйте эту команду, чтобы сделать его снова запускаемым.
whoami [PID...]
Возвращает единицы, к которым принадлежат процессы, указанные по их PID (по одной на строку). Если PID не указан, возвращает единицу, в которой вызывается команда systemctl.
Добавлено в версии 254.
Команды для файлов единиц
list-unit-files [PATTERN...]
Выводит список файлов единиц, установленных в системе, вместе с их состоянием включения (как сообщается командой is-enabled). Если указаны один или несколько шаблонов, отображаются только файлы единиц, имена которых соответствуют одному из них (шаблоны, соответствующие путям к файлам единиц в файловой системе, не поддерживаются).
В отличие от list-units, эта команда выводит список шаблонов единиц в дополнение к явно созданным единицам.
Добавлено в версии 233.
enable UNIT..., enable PATH...
Включает одну или несколько единиц или экземпляры единиц. Это создаст набор символических ссылок, как указано в разделах [Install] указанных файлов единиц. После создания символических ссылок конфигурация менеджера системы перезагружается (аналогично daemon-reload), чтобы обеспечить немедленный учет изменений. Обратите внимание, что это не приводит к запуску каких-либо из включаемых единиц. Если это необходимо, объедините эту команду с переключателем --now или вызовите start с соответствующими аргументами позже. Обратите внимание, что в случае включения экземпляра единицы (т. е. включение единиц в форме _), в каталоге конфигурации единиц создаются символические ссылки с тем же именем, что и у экземпляров, однако они указывают на один файл шаблона единицы, из которого они созданы.
Эта команда ожидает либо допустимые имена единиц (в этом случае автоматически выполняются поиски файлов единиц с соответствующими именами в различных каталогах файлов единиц), либо абсолютные пути к файлам единиц (в этом случае эти файлы считываются непосредственно). Если указанный файл единицы находится за пределами обычных каталогов файлов единиц, создается дополнительная символическая ссылка, связывающая его с путем конфигурации единицы, чтобы обеспечить его обнаружение при запросе командами, такими как start. Файловая система, в которой находятся связанные файлы единиц, должна быть доступна при запуске systemd (например, все, что находится в /home/ или /var/, не допускается, если эти каталоги не находятся в корневой файловой системе).
Эта команда выводит операции с файловой системой. Этот вывод можно подавить, передав параметр --quiet.
Обратите внимание, что эта операция создает только символические ссылки, указанные в разделе [Install] файлов единиц. Хотя эта команда является рекомендуемым способом управления каталогом конфигурации единиц, администратор может вносить дополнительные изменения вручную, размещая или удаляя символические ссылки в этом каталоге. Это особенно полезно для создания конфигураций, которые отличаются от предлагаемой конфигурации по умолчанию. В этом случае администратор должен убедиться, что при необходимости вручную вызывает daemon-reload, чтобы обеспечить учет изменений.
При использовании этой операции для юнитов, для которых отсутствует информация об установке, отображается предупреждение. --no-warn можно использовать для подавления предупреждения.
Включение юнитов не следует путать с их запуском (активацией), как это делается командой start. Включение и запуск юнитов — это отдельные процессы: юниты могут быть включены без запуска и запущены без включения. Включение просто добавляет юнит в различные предлагаемые места (например, чтобы юнит автоматически запускался при загрузке системы или при подключении определенного типа оборудования). Запуск фактически запускает процесс демона (в случае сервисных юнитов) или устанавливает соединение сокета (в случае юнитов сокетов) и так далее.
В зависимости от того, указаны ли параметры --system, --user, --runtime или --global, юнит будет включен для всей системы, только для вызывающего пользователя, только для текущей загрузки системы или для всех будущих сеансов всех пользователей. Обратите внимание, что в последнем случае конфигурация демона systemd не перезагружается.
Использование enable для замаскированных юнитов не поддерживается и приводит к ошибке.
disable ЮНИТ...
Отключает один или несколько юнитов. Это удаляет все символические ссылки на файлы юнитов, соответствующие указанным юнитам, из каталога конфигурации юнитов, и, следовательно, отменяет все изменения, внесенные командами enable или link. Обратите внимание, что это удаляет все символические ссылки на соответствующие файлы юнитов, включая созданные вручную символические ссылки, а не только те, которые были фактически созданы командами enable или link. Обратите внимание, что, хотя disable отменяет действие enable, эти две команды в остальном несимметричны, поскольку disable может удалить больше символических ссылок, чем предыдущий вызов enable для того же юнита.
Эта команда ожидает только допустимые имена юнитов, она не принимает пути к файлам юнитов.
В дополнение к юнитам, указанным в качестве аргументов, отключаются все юниты, перечисленные в настройке Also= в разделе [Install] любого из файлов юнитов, для которых выполняется операция.
Эта команда неявно перезагружает конфигурацию диспетчера системы после завершения операции. Обратите внимание, что эта команда не останавливает юниты, которые отключаются. Если это необходимо, либо объедините эту команду с переключателем --now, либо вызовите команду stop с соответствующими аргументами позже.
Эта команда выводит информацию о файловых операциях (удалении символических ссылок), выполненных в процессе. Этот вывод можно подавить, передав параметр --quiet.
Если юнит отключается, но его триггерные юниты остаются активными, отображается предупреждение, содержащее имена триггерных юнитов. --no-warn можно использовать для подавления предупреждения.
При использовании этой команды с параметром --user юниты, для которых выполняется операция, могут по-прежнему быть включены в глобальной области, и, следовательно, могут запускаться автоматически даже после успешного отключения в области пользователя. В этом случае отображается предупреждение об этом, которое можно подавить с помощью --no-warn.
Эта команда учитывает параметры --system, --user, --runtime, --global и --no-warn аналогичным образом, как и команда enable.
Добавлено в версии 238.
^ eenable UNIT...
Повторно включает одну или несколько единиц, указанных в командной строке. Это комбинация команд disable и enable и полезна для сброса символических ссылок, созданных для файла единицы при его включении, к значениям по умолчанию, указанным в его разделе [Install]. Эта команда ожидает только имя единицы и не принимает пути к файлам единиц.
Эта команда неявно перезагружает конфигурацию менеджера системы после завершения операции. Обратите внимание, что эта команда не перезапускает неявно единицы, которые отключаются. Если это необходимо, можно объединить эту команду с переключателем --now или вызвать команду try-restart с соответствующими аргументами позже.
Добавлено в версии 238.
^ reset UNIT...
Сбрасывает состояние включения/отключения одной или нескольких файлов единиц, указанных в командной строке, к значениям по умолчанию, указанным в файлах политик предустановок. Это дает тот же эффект, что и команды disable или enable, в зависимости от того, как единица указана в файлах предустановок.
Используйте --preset-mode= для управления тем, следует ли включать и отключать единицы или только включать их, или только отключать.
Если единица не содержит информации об установке, она будет игнорироваться этой командой. UNIT должен быть фактическим именем единицы; любые псевдонимы (символические ссылки на другую единицу) будут игнорироваться.
Для получения дополнительной информации о формате файлов политик предустановок см. systemd.preset(5).
Добавлено в версии 238.
^ reset-all
Сбрасывает состояние включения/отключения всех установленных файлов единиц к значениям по умолчанию, указанным в файле политики предустановок (см. выше).
Используйте --preset-mode= для управления тем, следует ли включать и отключать единицы или только включать их, или только отключать.
Добавлено в версии 215.
^ s-enabled UNIT...
Проверяет, включены ли какие-либо из указанных файлов единиц (как в команде enable). Возвращает код выхода 0, если хотя бы одна из них включена, и ненулевой код выхода в противном случае. Выводит текущий статус включения (см. таблицу). Чтобы подавить этот вывод, используйте --quiet. Чтобы показать цели установки, используйте --full.
Таблица 3. Вывод is-enabled
┌───────────────────┬────────────────────────────┬───────────┐
│ Name │ Description │ Exit Code │
├───────────────────┼────────────────────────────┼───────────┤
│ "enabled" │ Включено через .wants/, │ │
├───────────────────┤ .requires/ или Alias= │ │
│ "enabled-runtime" │ Символические ссылки (постоянно в │ 0 │
│ │ /etc/systemd/system/ или │ │
│ │ временно в │ │
│ │ /run/systemd/system/). │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "linked" │ Сделано доступным через одну │ │
├───────────────────┤ или несколько символических ссылок на │ │
│ "linked-runtime" │ файл единицы (постоянно в │ │
│ │ /etc/systemd/system/ или │ \> 0 │
│ │ временно в │ │
│ │ /run/systemd/system/), │ │
│ │ даже если файл единицы находится вне │ │
│ │ пути поиска файлов единиц. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "alias" │ Имя является псевдонимом │ 0 │
│ │ (символическая ссылка на другой │ │
│ │ файл единицы). │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "masked" │ Полностью отключено, так что │ │
├───────────────────┤ любая попытка запуска завершается неудачей (постоянно │ \> 0 │
│ "masked-runtime" │ в /etc/systemd/system/ или │ │
│ │ временно в │ │
│ │ /run/systemd/systemd/). │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "static" │ Файл единицы не включен и не имеет │ 0 │
│ │ положений для включения в разделе │ │
│ │ [Install] файла единицы. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "indirect" │ Сам файл единицы не включен, но имеет │ 0 │
│ │ непустое значение Also= в разделе │ │
│ │ [Install] файла единицы, перечисляющее другие │ │
│ │ файлы единиц, которые могут быть включены, или имеет │ │
│ │ псевдоним под другим именем через символическую ссылку, │ │
│ │ которая не указана в Also=. Для файлов единиц-шаблонов, экземпляр │ │
│ │ отличается от указанного в DefaultInstance= включен. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "disabled" │ Файл единицы не включен, но содержит │ \> 0 │
│ │ раздел [Install] с инструкциями по установке. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "generated" │ Файл единицы был │ 0 │
│ │ сгенерирован динамически с помощью │ │
│ │ инструмента генерации. См. │ │
│ │ systemd.generator(7). │ │
│ │ Сгенерированные файлы единиц могут │ │
│ │ не быть включены, они включаются неявно │ │
│ │ своим генератором. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "transient" │ Файл единицы был │ 0 │
│ │ создан динамически с помощью │ │
│ │ API времени выполнения. Временные │ │
│ │ единицы могут быть не включены. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "bad" │ Файл единицы недействителен │ \> 0 │
│ │ или произошла другая ошибка. │ │
│ │ Обратите внимание, что is-enabled не будет │ │
│ │ фактически возвращать это │ │
│ │ состояние, но выводить сообщение об ошибке │ │
│ │ вместо этого. Однако, список файлов единиц, │ │
│ │ напечатанный list-unit-files, может │ │
│ │ отображать его. │ │
├───────────────────┼────────────────────────────┼───────────┤
│ "not-found" │ Файла единицы не существует. │ 4 │
│ │ │ │
└───────────────────┴────────────────────────────┴───────────┘
Добавлено в версии 238.
mask UNIT...
Маскирует один или несколько указанных в командной строке юнитов. Это создаст символическую ссылку на эти файлы юнитов, указывающую на /dev/null, что сделает невозможным их запуск. Это более строгая версия команды disable, поскольку она запрещает все виды активации юнита, включая включение и ручную активацию. Используйте эту опцию с осторожностью. Опция --runtime может использоваться для временной маскировки до следующей перезагрузки системы. Опция --now может использоваться для обеспечения остановки юнитов. Эта команда ожидает только допустимые имена юнитов и не принимает пути к файлам юнитов.
Обратите внимание, что это создаст символическую ссылку под именем юнита в /etc/systemd/system/ (если не указана опция --runtime) или /run/systemd/system/ (если указана опция --runtime). Если в этих каталогах уже существует соответствующий файл юнита, эта операция не удастся. Это означает, что эта операция в основном полезна для маскировки юнитов, поставляемых поставщиком (поскольку они поставляются в /usr/lib/systemd/system/ и не в вышеуказанных двух каталогах), но обычно не работает для локально созданных юнитов (поскольку они обычно размещаются именно в вышеуказанных двух каталогах). Аналогичные ограничения применяются и к режиму --user, в котором каталоги находятся в домашней директории пользователя.
Если юнит замаскирован, но его запускающие юниты все еще активны, будет показано предупреждение, содержащее имена запускающих юнитов. --no-warn можно использовать для подавления предупреждения.
Добавлено в версии 238.
unmask UNIT...
Снимает маскировку с одного или нескольких указанных в командной строке файлов юнитов. Это отменяет эффект команды mask. Эта команда ожидает только допустимые имена юнитов и не принимает пути к файлам юнитов.
Добавлено в версии 238.
link PATH...
Создает символическую ссылку на файл юнита, который не находится в пути поиска файлов юнитов, и помещает его в путь поиска файлов юнитов. Эта команда ожидает абсолютный путь к файлу юнита. Эффект этой команды можно отменить с помощью disable. Эффект этой команды заключается в том, что файл юнита становится доступным для таких команд, как start, даже если он не установлен непосредственно в пути поиска. Файловая система, в которой находятся связанные файлы юнитов, должна быть доступна при запуске systemd (например, что-либо, находящееся под /home/ или /var/, не допускается, если эти каталоги не находятся в корневой файловой системе).
Добавлено в версии 233.
revert UNIT...
Отменяет изменения, внесенные в один или несколько файлов юнитов, и восстанавливает их версии, предоставляемые поставщиком. Эта команда удаляет файлы конфигурации, которые изменяют указанные юниты, а также любые пользовательские файлы юнитов, которые переопределяют соответствующие файлы юнитов, предоставляемые поставщиком. В частности, для юнита "foo.service" удаляются все файлы в соответствующих каталогах "foo.service.d/", как в постоянном, так и во временном каталогах конфигурации (т. е. ниже /etc/systemd/system и /run/systemd/system). Если файл юнита имеет версию, предоставляемую поставщиком (т. е. файл юнита, расположенный ниже /usr/), также удаляются любые соответствующие постоянные или временные файлы юнитов, которые его переопределяют. Обратите внимание, что если файл юнита не имеет версии, предоставляемой поставщиком (т. е. он определен только ниже /etc/systemd/system или /run/systemd/system, но не в файле юнита, хранящемся ниже /usr/), то он не удаляется. Кроме того, если юнит замаскирован, он размаскируется.
Фактически, эту команду можно использовать для отмены всех изменений, внесенных с помощью systemctl edit, systemctl set-property и systemctl mask, и восстановить исходный файл юнита с его настройками.
Добавлено в версии 230.
add-wants TARGET UNIT..., add-requires TARGET UNIT...
Добавляет зависимости "Wants=" или "Requires=", соответственно, для указанного TARGET для одного или нескольких юнитов.
Эта команда учитывает параметры --system, --user, --runtime и --global аналогичным образом, как и enable.
Добавлено в версии 217.
edit UNIT...
Редактирует или заменяет фрагмент конфигурации или основной файл юнита, чтобы расширить или переопределить определение указанного юнита.
В зависимости от того, указаны ли --system (по умолчанию), --user или --global, эта команда будет работать с системными файлами юнитов, файлами юнитов для вызывающего пользователя или файлами юнитов, совместно используемыми всеми пользователями.
Редактор (см. раздел "Окружение" ниже) запускается во временных файлах, которые будут записаны в фактическое местоположение, если редактор завершится успешно. После завершения редактирования конфигурация перезагружается, что эквивалентно systemctl daemon-reload --system или systemctl daemon-reload --user. Для edit --global перезагрузка не выполняется, и изменения вступят в силу только при последующих входах в систему (или после запроса перезагрузки другим способом).
Если указан параметр --full, будет создан или отредактирован файл замены основного файла юнита. В противном случае будет создан или отредактирован файл фрагмента.
Если указан параметр --drop-in, вместо имени по умолчанию override.conf будет использоваться указанное имя файла фрагмента.
Юнит должен существовать, т. е. его основной файл юнита должен быть представлен. Если указан параметр --force, это требование игнорируется, и может быть создан новый юнит (с --full) или может быть создан фрагмент для несуществующего юнита.
Если указан параметр --runtime, изменения будут внесены временно в каталог /run/ и будут
потеряны при следующей перезагрузке.
Если указан параметр --stdin, новый контент будет прочитан из стандартного ввода. В этом режиме
старое содержимое файла отбрасывается.
Если временный файл пуст при выходе, изменение соответствующей единицы отменяется.
Обратите внимание, что эту команду нельзя использовать для удаленного редактирования единиц, и вы не можете временно
редактировать единицы, находящиеся в /etc/, поскольку они имеют приоритет над /run/.
Добавлено в версии 218.
get-default
Возвращает целевую единицу по умолчанию для загрузки. Возвращает имя целевой единицы, на которую указывает ссылка default.target.
Добавлено в версии 205.
set-default TARGET
Устанавливает целевую единицу по умолчанию для загрузки. Устанавливает (создает ссылку) default.target на
указанную целевую единицу.
Добавлено в версии 205.
Команды для работы с машинами
list-machines [PATTERN...]
Выводит список хоста и всех запущенных локальных контейнеров с их состоянием. Если указан один или несколько шаблонов PATTERN, отображаются только контейнеры, соответствующие одному из шаблонов.
Добавлено в версии 212.
Команды для работы с заданиями
list-jobs [PATTERN...]
Выводит список заданий, находящихся в процессе выполнения. Если указан один или несколько шаблонов PATTERN, отображаются только задания для единиц, соответствующих одному из шаблонов.
При использовании вместе с --after или --before список дополняется информацией о том, какие другие
задания ожидает данное задание, и какие другие задания ожидают данное задание, см. выше.
Добавлено в версии 233.
cancel [JOB...]
Отменяет одно или несколько заданий, указанных в командной строке по их числовым идентификаторам заданий. Если идентификатор задания не указан, отменяются все ожидающие задания.
Добавлено в версии 233.
Команды для работы с окружением
systemd поддерживает блок окружения, который передается процессам, запускаемым менеджером. Имена
переменных могут содержать символы ASCII, цифры и символ подчеркивания. Имена переменных не могут быть пустыми или начинаться с цифры. В значениях переменных разрешены большинство символов, но
вся последовательность должна быть допустимым кодированием UTF-8. (Обратите внимание, что управляющие символы, такие как символ новой строки (NL), символ табуляции (TAB) или символ escape (ESC), являются допустимыми символами ASCII и, следовательно, допустимым кодированием UTF-8). Общая длина
блока окружения ограничена значением `_SC_ARG_MAX`, определяемым функцией `sysconf(3)`.
show-environment
Выводит блок окружения менеджера systemd. Это блок окружения, который передается всем процессам, запускаемым менеджером. Блок окружения будет выведен в простом формате, подходящем для использования в большинстве оболочек. Если в значениях переменных отсутствуют специальные символы или пробелы, не выполняется экранирование, и присваивания имеют вид "VARIABLE=value". Если присутствуют пробелы или символы, имеющие специальное значение для оболочки, используется экранирование в виде $ и одинарных кавычек, и присваивания имеют вид "VARIABLE=$'value'". Этот синтаксис поддерживается оболочками bash(1), zsh(1), ksh(1) и ash(1) из пакета busybox(1), но не dash(1) и fish(1).
Обратите внимание, что здесь отображается эффективный блок, то есть комбинация переменных среды,
настроенных через файлы конфигурации, генераторы среды и через IPC (то есть через
команду set-environment, описанную ниже). В момент, когда от основного процесса отпочковывается
новый процесс, этот объединенный блок среды дополнительно объединяется с переменными среды для
каждого отдельного процесса, которые не видны в этой команде.
`set-environment VARIABLE=VALUE...`
Устанавливает одну или несколько переменных среды менеджера служб, как указано в командной строке.
Эта команда завершится с ошибкой, если имена и значения переменных не соответствуют правилам, указанным выше.
Обратите внимание, что эта команда работает с блоком среды, отдельным от блока среды,
настроенного из конфигурации менеджера служб и генераторов среды. Каждый раз, когда вызывается
процесс, эти два блока объединяются (а также включаются любые переменные среды для конкретной службы)
и передаются процессу. Команда `show-environment` покажет комбинацию этих блоков, см. выше.
Добавлено в версии 233.
`unset-environment VARIABLE...`
Удаляет одну или несколько переменных среды менеджера systemd. Если указано только имя переменной,
она будет удалена независимо от ее значения. Если указана переменная и ее значение, переменная
будет удалена только в том случае, если она имеет указанное значение.
Обратите внимание, что эта команда работает с блоком среды, отдельным от блока среды,
настроенного из конфигурации менеджера служб и генераторов среды. Каждый раз, когда вызывается
процесс, эти два блока объединяются (а также включаются любые переменные среды для конкретной службы)
и передаются процессу. Команда `show-environment` покажет комбинацию этих блоков, см. выше.
Обратите внимание, что это означает, что эту команду нельзя использовать для удаления переменных
среды, определенных в файлах конфигурации менеджера служб или через генераторы.
Добавлено в версии 233.
`import-environment VARIABLE...`
Импортирует все или одну или несколько переменных среды, установленных на клиенте, в блок среды
менеджера systemd. Если передан список имен переменных среды, значения со стороны клиента
импортируются в блок среды менеджера. Если какие-либо имена не являются допустимыми именами
переменных среды или имеют недопустимые значения в соответствии с правилами, описанными выше,
возникает ошибка. Если аргументы не переданы, весь блок среды, унаследованный процессом systemctl,
импортируется. В этом режиме любые унаследованные недопустимые переменные среды тихо игнорируются.
Импорт всего унаследованного блока среды (вызов этой команды без каких-либо аргументов) устарел.
Оболочка устанавливает десятки переменных, которые имеют смысл только локально и предназначены только
для процессов, которые являются потомками оболочки. Такие переменные в глобальном блоке среды
вводят в заблуждение другие процессы.
Добавлено в версии 209.
Команды управления состоянием менеджера
`daemon-reload`
Перезагружает конфигурацию менеджера systemd. Это повторно запустит все генераторы (см.
`systemd.generator(7)`), перезагрузит все файлы юнитов и воссоздаст все дерево зависимостей.
Пока менеджер перезагружается, все сокеты, которые systemd прослушивает от имени конфигурации
пользователя, останутся доступными.
Эту команду не следует путать с командой reload.
daemon-reexec
Перезапускает менеджер systemd. Это приведет к сериализации состояния менеджера, повторному запуску процесса и повторной десериализации состояния. Эта команда имеет мало практического применения, кроме отладки и обновлений пакетов. Иногда она может быть полезна в качестве более радикальной альтернативы команде daemon-reload. Во время перезапуска менеджера все сокеты, за которыми systemd следит для пользовательских конфигураций, останутся доступными.
log-level [УРОВЕНЬ]
Если аргумент не указан, выводит текущий уровень регистрации событий менеджера. Если указан необязательный аргумент УРОВЕНЬ, то команда изменяет текущий уровень регистрации событий менеджера на УРОВЕНЬ (принимает те же значения, что и --log-level=, описанные в systemd(1)).
Добавлено в версии 244.
log-target [ЦЕЛЬ]
Если аргумент не указан, выводит текущую цель регистрации событий менеджера. Если указан необязательный аргумент ЦЕЛЬ, то команда изменяет текущую цель регистрации событий менеджера на ЦЕЛЬ (принимает те же значения, что и --log-target=, описанные в systemd(1)).
Добавлено в версии 244.
service-watchdogs [да|нет]
Если аргумент не указан, выводит текущее состояние служб наблюдения за временем выполнения служб менеджера. Если указан необязательный булев аргумент, то глобально включает или отключает службы наблюдения за временем выполнения служб (WatchdogSec=) и аварийные действия (например, OnFailure= или StartLimitAction=); см. systemd.service(5). Аппаратный сторожевой таймер не подвержен влиянию этой настройки.
Добавлено в версии 244.
Системные команды
is-system-running
Проверяет, работает ли система. Эта команда возвращает успешный результат (код выхода 0), когда система полностью запущена и работает, то есть не находится в режиме запуска, завершения работы или обслуживания и не имеет сбоев в службах. В противном случае возвращается ошибка (код выхода не равен нулю). Кроме того, текущее состояние выводится в виде короткой строки в стандартный вывод, см. таблицу ниже. Используйте --quiet, чтобы отключить этот вывод.
Используйте --wait, чтобы дождаться завершения процесса загрузки, прежде чем выводить текущее состояние и возвращать соответствующий код ошибки. Если используется --wait, состояния initializing или starting не будут сообщаться, вместо этого команда будет блокироваться до тех пор, пока не будет достигнуто более позднее состояние (например, running или degraded).
Таблица 4. Вывод команды is-system-running
┌──────────────┬────────────────────────────┬───────────┐
│ Name │ Description │ Exit Code │
├──────────────┼────────────────────────────┼───────────┤
│ initializing │ Ранняя загрузка, до того, │ \> 0 │
│ │ как будет достигнута │ │
│ │ basic.target или │ │
│ │ активировано состояние │ │
│ │ обслуживания. │ │
├──────────────┼────────────────────────────┼───────────┤
│ starting │ Поздняя загрузка, до того, │ \> 0 │
│ │ как очередь заданий станет │ │
│ │ неактивной впервые или │ │
│ │ достигнуты одна из аварийных│ │
│ │ целей. │ │
├──────────────┼────────────────────────────┼───────────┤
│ running │ Система полностью │ 0 │
│ │ работоспособна. │ │
├──────────────┼────────────────────────────┼───────────┤
│ degraded │ Система работоспособна, но │ \> 0 │
│ │ одна или несколько служб │ │
│ │ завершились с ошибкой. │ │
├──────────────┼────────────────────────────┼───────────┤
│ maintenance │ Активирована аварийная или │ \> 0 │
│ │ резервная цель. │ │
├──────────────┼────────────────────────────┼───────────┤
│ stopping │ Менеджер завершает работу. │ \> 0 │
│ │ │ │
├──────────────┼────────────────────────────┼───────────┤
│ offline │ Менеджер не запущен. │ \> 0 │
│ │ В частности, это │ │
│ │ оперативное состояние, если │ │
│ │ в качестве менеджера системы│ │
│ │ запущена несовместимая │ │
│ │ программа (PID 1). │ │
├──────────────┼────────────────────────────┼───────────┤
│ unknown │ Оперативное состояние не │ \> 0 │
│ │ удалось определить из-за │ │
│ │ нехватки ресурсов или другой│ │
│ │ причины. │ │
└──────────────┴────────────────────────────┴───────────┘
Добавлено в версии 215.
default
Перейти в режим по умолчанию. Это эквивалентно systemctl isolate default.target. Эта операция по умолчанию является блокирующей, используйте --no-block для запроса асинхронного поведения.
rescue
Перейти в аварийный режим. Это эквивалентно systemctl isolate rescue.target. Эта операция по умолчанию является блокирующей, используйте --no-block для запроса асинхронного поведения.
emergency
Перейти в режим экстренной ситуации. Это эквивалентно systemctl isolate emergency.target. Эта операция по умолчанию является блокирующей, используйте --no-block для запроса асинхронного поведения.
halt
Выключить систему и остановить ее. Это в основном эквивалентно systemctl start halt.target --job-mode=replace-irreversibly --no-block, но также выводит сообщение всем пользователям. Эта команда является асинхронной; она вернет управление после того, как операция остановки будет поставлена в очередь, без ожидания ее завершения. Обратите внимание, что эта операция просто остановит ядро ОС после выключения, оставив оборудование включенным. Используйте systemctl poweroff для полного выключения системы (см. ниже).
Если использовать вместе с --force, выключение всех работающих служб будет пропущено, однако все процессы будут завершены, а все файловые системы будут отмонтированы или смонтированы в режиме только для чтения, после чего немедленно будет выполнена остановка системы. Если --force указан дважды, операция будет выполнена немедленно без завершения каких-либо процессов или отмонтирования каких-либо файловых систем. Это может привести к потере данных. Обратите внимание, что когда --force указан дважды, операция остановки выполняется самим systemctl, и диспетчер системы не вызывается. Это означает, что команда должна выполняться успешно, даже если диспетчер системы аварийно завершился.
Если использовать вместе с --when=, выключение будет запланировано после указанного времени. А --when=cancel отменит выключение.
poweroff
Выключить и обесточить систему. Это в основном эквивалентно systemctl start poweroff.target --job-mode=replace-irreversibly --no-block, но также выводит сообщение всем пользователям. Эта команда является асинхронной; она вернет управление после того, как операция выключения будет поставлена в очередь, без ожидания ее завершения.
Эта команда учитывает --force и --when= аналогичным образом, как и halt.
reboot
Выключить и перезагрузить систему.
Эта команда в основном эквивалентна systemctl start reboot.target --job-mode=replace-irreversibly --no-block, но также выводит сообщение всем пользователям. Эта команда является асинхронной; она вернет управление после того, как операция перезагрузки будет поставлена в очередь, без ожидания ее завершения.
Если указан переключатель --reboot-argument=, он будет передан в качестве необязательного аргумента системному вызову reboot(2).
Параметры --boot-loader-entry=, --boot-loader-menu= и --firmware-setup можно использовать для выбора дальнейших действий после перезагрузки. См. описание этих параметров для получения подробной информации.
Эта команда учитывает --force и --when= аналогичным образом, как и halt.
Если новый образ ядра был загружен с помощью kexec --load, при вызове kexec вместо обычной перезагрузки будет выполнена перезагрузка с использованием kexec, если только не установлена переменная среды SYSTEMCTL_SKIP_AUTO_KEXEC=1. Если новая корневая файловая система была установлена в /run/nextroot/, при вызове перезагрузки будет выполнена «мягкая» перезагрузка вместо обычной перезагрузки, если только не установлена переменная среды SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1.
Добавлено в версии 246.
kexec
Выполните выключение и перезагрузку системы с помощью kexec. Эта команда загрузит ядро kexec, если оно еще не было загружено, или завершится с ошибкой. Ядро может быть загружено на более раннем этапе отдельным шагом, это особенно полезно, если требуются пользовательский initrd или дополнительные параметры командной строки ядра. Опция --force может использоваться для продолжения без загруженного ядра kexec, т.е. для выполнения обычной перезагрузки. Последний шаг перезагрузки эквивалентен systemctl start kexec.target --job-mode=replace-irreversibly --no-block.
Для загрузки ядра выполняется перечисление в соответствии со спецификацией загрузчика UAPI.1[1], и загружается запись загрузчика по умолчанию. Для успешного выполнения этого шага система должна использовать UEFI, и записи загрузчика должны быть настроены соответствующим образом. Команда bootctl list может использоваться для просмотра записей загрузчика, см. bootctl(1).
Эта команда асинхронна; она вернет управление после того, как операция перезагрузки будет помещена в очередь, без ожидания ее завершения.
Эта команда учитывает опции --force и --when= аналогично команде halt.
Если новый образ ядра был загружен с помощью kexec --load, при вызове перезагрузки будет выполнена перезагрузка с использованием kexec, если только не установлена переменная среды SYSTEMCTL_SKIP_AUTO_KEXEC=1.
soft-reboot
Выполните выключение и перезагрузку пользовательского пространства. Это эквивалентно systemctl start soft-reboot.target --job-mode=replace-irreversibly --no-block. Эта команда асинхронна; она вернет управление после того, как операция перезагрузки будет помещена в очередь, без ожидания ее завершения.
Эта команда учитывает опции --force и --when= аналогично команде halt.
Эта операция перезагружает только пользовательское пространство, оставляя ядро работающим. См. systemd-softreboot.service(8) для получения подробной информации.
Если новая корневая файловая система была установлена в /run/nextroot/, при вызове перезагрузки будет выполнена «мягкая» перезагрузка, если только не установлена переменная среды SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1.
Добавлено в версии 254.
exit [EXIT_CODE]
Попросите диспетчер служб завершить работу. Это поддерживается только для диспетчеров служб пользовательского уровня (т.е. при использовании опции --user) или в контейнерах, и в противном случае эквивалентно команде poweroff. Эта команда асинхронна; она вернет управление после того, как операция завершения будет помещена в очередь, без ожидания ее завершения.
Диспетчер служб завершит работу с указанным кодом выхода, если EXIT_CODE указан.
Добавлено в версии 227.
switch-root [ROOT [INIT]]
Переключает на другую корневую директорию и выполняет новый процесс диспетчера системы под ней. Это предназначено для использования в initrd и выполняет переход от процесса диспетчера системы initrd (также известного как процесс "init", PID 1) к основному процессу диспетчера системы, который загружается из фактической корневой файловой системы хоста. Эта команда принимает два аргумента: директорию, которая станет новой корневой директорией, и путь к новому двоичному файлу диспетчера системы, который будет выполняться под ней в качестве PID 1. Если оба аргумента опущены или первый аргумент является пустой строкой, по умолчанию используется /sysroot/. Если второй аргумент опущен или является пустой строкой, автоматически будет найден и использован двоичный файл systemd в качестве диспетчера служб. Если путь к диспетчеру системы опущен, равен пустой строке или идентичен пути к двоичному файлу systemd, состояние процесса диспетчера системы initrd передается основному диспетчеру системы, что позволяет впоследствии изучать состояние служб, участвующих в фазе загрузки initrd.
Добавлено в версии 209.
sleep
Переводит систему в режим сна посредством приостановки, гибернации, гибридного сна или приостановки с последующей гибернацией. Используемая операция сна автоматически выбирается службой systemd-logind.service(8). По умолчанию используется приостановка с последующей гибернацией, и в случае, если она не поддерживается, происходит переход к приостановке, а затем к гибернации. Подробности см. в настройке SleepOperation= в logind.conf(5). Эта команда асинхронна и возвращает результат после успешного добавления операции сна в очередь. Она не будет ждать завершения цикла сна/пробуждения.
Добавлено в версии 256.
suspend
Переводит систему в режим приостановки. Это запускает активацию специальной целевой единицы suspend.target. Эта команда асинхронна и возвращает результат после успешного добавления операции приостановки в очередь. Она не будет ждать завершения цикла приостановки/пробуждения.
Если указан параметр --force, и systemd-logind вернул ошибку для этой операции, ошибка будет проигнорирована, и операция будет повторена непосредственно путем запуска целевой единицы.
hibernate
Переводит систему в режим гибернации. Это запускает активацию специальной целевой единицы hibernate.target. Эта команда асинхронна и возвращает результат после успешного добавления операции гибернации в очередь. Она не будет ждать завершения цикла гибернации/пробуждения.
Эта команда поддерживает параметр --force так же, как и suspend.
hybrid-sleep
Переводит систему в гибридный режим сна (гибернация и приостановка). Это запускает активацию специальной целевой единицы hybrid-sleep.target. Эта команда асинхронна и возвращает результат после успешного добавления операции гибридного сна в очередь. Она не будет ждать завершения цикла сна/пробуждения.
Эта команда поддерживает параметр --force так же, как и suspend.
Добавлено в версии 196.
suspend-then-hibernate
Переводит систему в режим приостановки и гибернации, когда заряд батареи низкий или когда истекло время, указанное в systemd-sleep.conf. Это запускает активацию специальной целевой единицы suspend-then-hibernate.target. Эта команда асинхронна и возвращает результат после успешного добавления операции гибридного сна в очередь. Она не будет ждать завершения цикла сна/пробуждения или цикла гибернации/пробуждения.
Эта команда поддерживает параметр --force так же, как и suspend.
Добавлено в версии 240.
Синтаксис параметров
Команды для единиц, перечисленные выше, принимают либо одно имя единицы (обозначенное как UNIT), либо несколько спецификаций единиц (обозначенных как PATTERN...). В первом случае необходимо указать имя единицы с суффиксом или без него. Если суффикс не указан (имя единицы "сокращено"), systemctl добавляет подходящий суффикс, ".service" по умолчанию, и суффикс, специфичный для типа, в случае команд, которые работают только с определенными типами единиц. Например:
# systemctl start sshd
и
# systemctl start sshd.service
эквивалентны, как и
# systemctl isolate default
и
# systemctl isolate default.target
Обратите внимание, что (абсолютные) пути к узлам устройств автоматически преобразуются в имена узлов устройств, а другие (абсолютные) пути — в имена узлов монтирования.
# systemctl status /dev/sda
# systemctl status /home
эквивалентны:
# systemctl status dev-sda.device
# systemctl status home.mount
Во втором случае шаблоны в стиле оболочки будут сопоставляться с основными именами всех единиц, находящихся в памяти; буквальные имена единиц, с суффиксом или без него, будут рассматриваться, как в первом случае. Это означает, что буквальные имена единиц всегда относятся ровно к одной единице, но шаблоны могут соответствовать нулю единиц, и это не считается ошибкой.
Шаблоны используют fnmatch(3), поэтому применяются обычные правила подстановки символов оболочки, и можно использовать "*", "?", "[]". Подробности см. в glob(7). Шаблоны сопоставляются с основными именами единиц, находящихся в памяти, и шаблоны, которые ничему не соответствуют, игнорируются. Например:
# systemctl stop "sshd@*.service"
остановит все экземпляры [email protected]. Обратите внимание, что псевдонимы единиц и единицы, которые не находятся в памяти, не учитываются при расширении шаблонов.
Для команд с файлами единиц, указанная ЕДИНИЦА должна быть именем файла единицы (возможно, сокращенным, см. выше), или абсолютным путем к файлу единицы:
# systemctl enable foo.service
или
# systemctl link /path/to/foo.service
ОПЦИИ
Поддерживаются следующие опции:
-t, --type=
Аргумент — это список типов единиц, разделенных запятыми, таких как service и socket. При перечислении единиц с помощью list-units, list-dependencies, show или status отображаются только единицы указанных типов. По умолчанию отображаются единицы всех типов.
В качестве особого случая, если одним из аргументов является help, будет напечатан список допустимых значений, и программа завершит работу.
--state=
Аргумент — это список состояний LOAD, SUB или ACTIVE, разделенных запятыми. При перечислении единиц с помощью list-units, list-dependencies, show или status отображаются только единицы в указанных состояниях. Используйте --state=failed или --failed, чтобы отображать только неудавшиеся единицы.
В качестве особого случая, если одним из аргументов является help, будет напечатан список допустимых значений, и программа завершит работу.
Добавлено в версии 206.
-p, --property=
При отображении свойств единицы/задания/менеджера с помощью команды show отображайте только свойства, указанные в аргументе. Аргумент должен быть списком имен свойств, разделенных запятыми, например "MainPID". Если не указано, отображаются все известные свойства. Если указано более одного раза, отображаются все свойства с указанными именами. Реализовано автозаполнение для имен свойств.
Для самого менеджера команда systemctl show отображает все доступные свойства, большинство из которых выводятся или тесно соответствуют параметрам, описанным в systemd-system.conf(5).
Свойства для юнитов различаются в зависимости от типа юнита, поэтому отображение любого юнита (даже несуществующего) — это способ перечислить свойства, относящиеся к этому типу. Аналогично, отображение любого задания перечислит свойства, относящиеся ко всем заданиям. Свойства юнитов документированы в systemd.unit(5), а страницы для отдельных типов юнитов — systemd.service(5), systemd.socket(5) и т. д.
-P
Эквивалентно `--value --property=`, то есть отображает значение свойства без имени свойства или знака "=". Обратите внимание, что использование `-P` один раз также повлияет на все свойства, перечисленные с помощью `-p/--property=`.
Добавлено в версии 246.
-a, --all
При перечислении юнитов с помощью `list-units` также отображать неактивные юниты и юниты, которые следуют за другими юнитами. При отображении свойств юнита/задания/менеджера отображать все свойства, независимо от того, установлены они или нет.
Чтобы перечислить все юниты, установленные в файловой системе, используйте команду `list-unit-files`.
При перечислении юнитов с помощью `list-dependencies` рекурсивно отображать зависимости всех зависимых юнитов (по умолчанию отображаются только зависимости целевых юнитов).
При использовании со статусом отображать сообщения журнала полностью, даже если они содержат непечатаемые символы или очень длинные. По умолчанию поля, содержащие непечатаемые символы, сокращаются до "blob data". (Обратите внимание, что пейджер может снова экранировать непечатаемые символы).
-r, --recursive
При перечислении юнитов также отображать юниты локальных контейнеров. Юниты локальных контейнеров будут иметь префикс с именем контейнера, разделенным одним символом двоеточия (":").
Добавлено в версии 212.
--reverse
Отображать обратные зависимости между юнитами с помощью `list-dependencies`, то есть отслеживать зависимости типов `WantedBy=`, `RequiredBy=`, `UpheldBy=`, `PartOf=`, `BoundBy=`, вместо `Wants=` и аналогичных.
Добавлено в версии 203.
--after
С помощью `list-dependencies` отображать юниты, которые упорядочены перед указанным юнитом. Другими словами, рекурсивно перечислять юниты, следующие за зависимостью `After=`.
Обратите внимание, что любая зависимость `After=` автоматически преобразуется в зависимость `Before=`. Временные зависимости можно указывать явно, но они также создаются неявно для юнитов, которые являются целевыми юнитами `WantedBy=` (см. `systemd.target(5)`) и в результате других директив (например, `RequiresMountsFor=`). Как явно, так и неявно введенные зависимости отображаются с помощью `list-dependencies`.
При передаче команде `list-jobs` для каждого отображаемого задания отображать, какие другие задания ожидают его завершения. Можно комбинировать с `--before`, чтобы отображать как задания, ожидающие завершения каждого задания, так и все задания, которые каждое задание ожидает.
Добавлено в версии 203.
--before
С помощью `list-dependencies` отображать юниты, которые упорядочены после указанного юнита. Другими словами, рекурсивно перечислять юниты, следующие за зависимостью `Before=`.
При использовании с командой list-jobs, для каждой выведенной задачи отображает, какие другие задачи от нее зависят. Может использоваться в сочетании с --after для отображения как задач, от которых зависит каждая задача, так и всех задач, от которых она зависит.
Добавлено в версии 212.
--with-dependencies
При использовании с командами status, cat, list-units и list-unit-files, эти команды выводят все указанные юниты и их зависимости.
Опции --reverse, --after, --before могут использоваться для изменения типов отображаемых зависимостей.
Добавлено в версии 245.
-l, --full
Не обрезать имена юнитов, элементы дерева процессов, вывод журнала или усекать описания юнитов в выводе команд status, list-units, list-jobs и list-timers.
Также, показывать цели установки в выводе команды is-enabled.
--value
При выводе свойств с помощью команды show, выводить только значение, опуская имя свойства и знак "=". Также см. опцию -P выше.
Добавлено в версии 230.
--show-types
При выводе информации о сокетах, показывать тип сокета.
Добавлено в версии 202.
--job-mode=
При постановке в очередь новой задачи, эта опция определяет, как обрабатывать уже поставленные в очередь задачи. Она принимает одно из значений: "fail", "lenient", "replace", "replace-irreversibly", "isolate", "ignore-dependencies", "ignore-requirements", "flush", "triggering" или "restart-dependencies". По умолчанию "replace", за исключением случаев использования команды isolate, которая подразумевает режим "isolate".
Если указано "fail" и запрошенная операция над слабыми зависимостями конфликтует с ожидающей задачей (в частности: приводит к тому, что уже ожидающая задача запуска превращается в задачу остановки или наоборот), операция завершится с ошибкой.
Если указано "lenient" и запрошенная операция конфликтует с любой активной/активирующейся единицей, операция завершится с ошибкой.
Если указано "replace" (по умолчанию), любые конфликтующие ожидающие задачи будут заменены, если это необходимо.
Если указано "replace-irreversibly", действовать как "replace", но также пометить новые задачи как необратимые. Это предотвращает возможность замены этих задач в будущих конфликтующих транзакциях (или даже постановку их в очередь, пока необратимые задачи все еще ожидают выполнения). Необратимые задачи все еще можно отменить с помощью команды cancel. Этот режим задачи следует использовать для любой транзакции, которая включает shutdown.target.
"isolate" действует только для операций запуска и приводит к остановке всех остальных юнитов при запуске указанного юнита. Этот режим всегда используется при использовании команды `isolate`.
"flush" приведет к отмене всех задач, находящихся в очереди, при постановке новой задачи в очередь.
Если указано "ignore-dependencies", то все зависимости юнита игнорируются для этой новой задачи, и операция выполняется немедленно. Если указано, никакие необходимые юниты указанного юнита не будут добавлены, и порядок зависимостей не будет соблюдаться. Это в основном инструмент отладки и восстановления для администратора и не должен использоваться приложениями.
"ignore-requirements" аналогичен "ignore-dependencies", но только приводит к игнорированию зависимостей требований, зависимости порядка по-прежнему будут соблюдаться.
"triggering" может использоваться только с systemctl stop. В этом режиме указанная единица и любые активные единицы, которые ее запускают, останавливаются. См. обсуждение Triggers= в systemd.unit(5) для получения дополнительной информации о единицах, запускающих другие единицы.
"restart-dependencies" может использоваться только с systemctl start. В этом режиме зависимости указанной единицы получают распространение перезапуска, как если бы для единицы была поставлена в очередь задача перезапуска.
Добавлено в версии 209.
-T, --show-transaction
При постановке в очередь задачи для единицы (например, в результате вызова systemctl start или аналогичного), отображает краткую информацию обо всех поставленных в очередь задачах, включая запрошенную задачу и любые добавленные из-за зависимостей единицы. Обратите внимание, что вывод будет включать только задачи, которые непосредственно входят в запрошенный набор задач. Возможно, что код программы запуска службы, выполняемый в результате поставленных в очередь задач, может запросить дополнительные задачи для выполнения. Это означает, что завершение перечисленных задач в конечном итоге может привести к выполнению большего количества задач, чем указано в списке.
Добавлено в версии 242.
--fail
Сокращение для --job-mode=fail.
При использовании с командой kill, если ни одна из единиц не была остановлена, операция завершается с ошибкой.
Добавлено в версии 227.
--check-inhibitors=
При запросе на завершение работы системы или переход в режим ожидания, этот параметр управляет проверкой блокировок-ингибиторов. Он принимает одно из значений: "auto", "yes" и "no". По умолчанию используется "auto", что означает, что logind выполнит проверку и учтет активные блокировки-ингибиторы, но systemctl выполнит только клиентскую проверку для интерактивных вызовов (т.е. из TTY), чтобы можно было вернуть более понятное и информативное сообщение об ошибке пользователям. "no" отключает проверки как в systemctl, так и в systemd-logind(8).
Приложения могут устанавливать блокировки-ингибиторы, чтобы предотвратить прерывание определенных важных операций (например, записи на CD) при завершении работы системы или переходе в режим ожидания. Любой пользователь может устанавливать эти блокировки, а привилегированные пользователи могут отменять их. Если какие-либо блокировки установлены, запросы на завершение работы и переход в режим ожидания обычно будут неудачными (если только они явно не будут отменены с помощью "no").
Параметр --force предоставляет другой способ отмены блокировок-ингибиторов.
Добавлено в версии 248.
-i
Сокращение для --check-inhibitors=no.
Добавлено в версии 198.
--dry-run
Просто выводит, что будет сделано. В настоящее время поддерживается командами halt, poweroff, reboot, kexec, suspend, hibernate, hybrid-sleep, suspend-then-hibernate, default, rescue, emergency и exit.
Добавлено в версии 236.
-q, --quiet
Подавляет вывод результатов различных команд, а также предупреждений о усеченных строках журнала. Это не подавляет вывод команд, для которых вывод является единственным результатом (например, show). Ошибки всегда выводятся.
-v, --verbose
Отображает вывод журнала единицы во время выполнения операций над единицей.
Добавлено в версии 258.
--no-warn
Не генерирует предупреждения, которые отображаются по умолчанию в следующих случаях:
Когда systemctl вызывается без смонтированной файловой системы /proc,
при использовании enable или disable для юнитов, у которых отсутствует информация об установке (т.е. у них нет раздела [Install] или он пуст),
при использовании disable в сочетании с --user для юнитов, которые включены в глобальной области видимости,
когда остановленный, отключенный или замаскированный юнит все еще имеет активные юниты-триггеры,
когда файл юнита был изменен и требуется daemon-reload.
Добавлено в версии 253.
--no-block
Не ждать синхронно завершения запрошенной операции. Если это не указано, задача будет проверена, помещена в очередь, и systemctl будет ждать, пока завершится запуск юнита. При передаче этого аргумента выполняется только проверка и помещение в очередь. Этот параметр нельзя использовать в сочетании с --wait.
--wait
При использовании с start или restart, синхронно ждать завершения запущенных юнитов. Этот параметр нельзя использовать в сочетании с --no-block. Обратите внимание, что он будет ждать бесконечно, если какой-либо юнит никогда не завершится (самостоятельно или путем явной остановки); особенно это относится к службам, которые используют "RemainAfterExit=yes".
При использовании с is-system-running, ждать, пока процесс загрузки не будет завершен, прежде чем вернуть результат.
При использовании с kill, ждать, пока сигнальные юниты не завершатся. Обратите внимание, что он будет ждать бесконечно, если какой-либо юнит никогда не завершится.
Добавлено в версии 232.
--user
Обращаться к менеджеру служб вызывающего пользователя, а не к менеджеру служб системы.
--system
Обращаться к менеджеру служб системы. Это подразумеваемая опция по умолчанию.
--failed
Вывести список юнитов в состоянии ошибки. Это эквивалентно --state=failed.
Добавлено в версии 233.
--no-wall
Не отправлять широковещательное сообщение перед halt, power-off и reboot.
--global
При использовании с enable и disable, выполнять операции в глобальном каталоге конфигурации пользователя, тем самым включая или отключая файл юнита глобально для всех будущих сеансов всех пользователей.
--no-reload
При использовании с enable, disable, preset, mask или unmask, не выполнять неявную перезагрузку конфигурации демона после выполнения изменений.
--kill-whom=
При использовании с kill, выбрать, каким процессам отправлять сигнал UNIX. Должно быть одним из main, control, cgroup или all, чтобы выбрать, отправлять ли сигнал только основному процессу, процессу управления, всем процессам в группе управления юнита или всем процессам юнита. Основной процесс юнита — это процесс, который определяет его жизненный цикл. Процесс управления юнита — это процесс, который вызывается менеджером для изменения его состояния. Например, все процессы, запущенные в результате настроек ExecStartPre=, ExecStop= или ExecReload= служб, являются процессами управления. Обратите внимание, что одновременно может быть только один процесс управления для каждого юнита, поскольку одновременно выполняется только одно изменение состояния. Для служб типа Type=forking начальный процесс, запущенный менеджером для ExecStart=, является процессом управления, а процесс, который в конечном итоге от него отпочковывается, является основным процессом юнита (если его можно определить). Это отличается для служб других типов, где процесс, отпочковывающийся от менеджера для ExecStart=, всегда является основным процессом. Служба состоит из нуля или одного основного процесса, нуля или одного процесса управления и любого числа дополнительных процессов, входящих в группу управления юнита. Однако не все типы юнитов управляют процессами этих типов. Например, для юнитов монтирования определены процессы управления (которые представляют собой вызовы /usr/bin/mount и /usr/bin/umount), но основной процесс не определен. Если не указано, значение по умолчанию — all, за исключением случаев, когда используется --kill-subgroup=, в этом случае значение по умолчанию — cgroup.
Добавлено в версии 252.
--kill-value=INT
При использовании с командой kill добавляет в очередь сигнал вместе с указанным целочисленным значением.
Эта операция доступна только для сигналов POSIX Realtime (т. е. --signal=SIGRTMIN+... или --signal=SIGRTMAX-...) и гарантирует, что сигналы будут генерироваться с помощью системного вызова sigqueue(3), а не kill(3). Указанное значение должно быть 32-битным целым числом со знаком и может быть указано в десятичной, шестнадцатеричной (если оно начинается с "0x"), восьмеричной (если оно начинается с "0o") или двоичной форме (если оно начинается с "0b").
Если используется эта опция, сигнал будет помещен в очередь только для основного или управляющего процесса юнита, а не для других процессов, принадлежащих к юниту, т. е. --kill-whom=all повлияет только на основные и управляющие процессы, но не на другие процессы.
Добавлено в версии 254.
--kill-subgroup=PATH
Указывает путь к подгруппе системы управления ресурсами, которому необходимо отправить сигналы, для использования с командой kill. По умолчанию выбранный сигнал отправляется всем процессам в системе управления ресурсами юнита (а также основным/управляющим процессам, если они находятся за ее пределами, в соответствии с --kill-whom=). Но с помощью этой опции можно выбрать подгруппу. Эта функциональность доступна только в том случае, если для --kill-whom= используется "cgroup" или "cgroup-fail", и, фактически, первое является значением по умолчанию, если используется --kill-subgroup=.
Указанный путь может начинаться со слэша, но это не обязательно, и наличие или отсутствие слэша не имеет значения; путь в любом случае считается относительным к основному пути системы управления ресурсами юнита.
Эта функциональность доступна только для юнитов, для которых включено делегирование системы управления ресурсами (см. Delegate= в systemd.resource-control(5)).
Добавлено в версии 258.
-s, --signal=
При использовании с командой kill позволяет выбрать сигнал, который будет отправлен выбранным процессам. Должно быть одним из известных спецификаторов сигналов, таких как SIGTERM, SIGINT или SIGSTOP. Если не указано, по умолчанию используется SIGTERM.
Специальное значение help выведет список известных значений, после чего программа немедленно завершит работу, а специальное значение list выведет список известных значений вместе с числовыми номерами сигналов, после чего программа немедленно завершит работу.
--what=
Позволяет выбрать тип ресурсов юнита, которые необходимо удалить при вызове команды clean, см. выше. Принимает одно из значений: configuration, state, cache, logs, runtime, fdstore, чтобы выбрать тип ресурса. Эту опцию можно указать несколько раз, в этом случае будут удалены все указанные типы ресурсов. Также можно использовать специальное значение all в качестве сокращения для указания всех шести типов ресурсов. Если эта опция не указана, по умолчанию удаляются комбинация cache, runtime и fdstore, то есть три типа ресурсов, которые, как правило, считаются избыточными и могут быть восстановлены при следующем вызове. Обратите внимание, что явное удаление типа ресурса fdstore полезно только в том случае, если включена опция FileDescriptorStorePreserve=, поскольку в противном случае хранилище файловых дескрипторов очищается автоматически при остановке юнита.
Добавлено в версии 243.
-f, --force
При использовании с enable, перезаписывает любые существующие конфликтующие символические ссылки.
При использовании с edit, создает все указанные юниты, которых еще не существует.
При использовании с suspend, hibernate, hybrid-sleep или suspend-then-hibernate, ошибка, возвращаемая systemd-logind, игнорируется, и операция выполняется непосредственно путем запуска соответствующих юнитов.
При использовании с halt, poweroff, reboot или kexec, выполняет выбранную операцию без завершения работы всех юнитов. Однако все процессы будут принудительно завершены, а все файловые системы будут отмонтированы или повторно смонтированы в режиме только для чтения. Таким образом, это радикальный, но относительно безопасный способ запросить немедленную перезагрузку. Если --force указано дважды для этих операций (за исключением kexec), они будут выполнены немедленно, без завершения каких-либо процессов или отмонтирования каких-либо файловых систем.
Предупреждение
Указание --force дважды для любой из этих операций может привести к потере данных. Обратите внимание, что когда --force указано дважды, выбранная операция выполняется самим systemctl, и с менеджером системы не происходит обмена данными. Это означает, что команда должна выполняться успешно, даже если менеджер системы аварийно завершил работу.
--message=
При использовании с halt, poweroff или reboot, задает короткое сообщение, объясняющее причину операции. Сообщение будет записано в журнал вместе с сообщением по умолчанию о завершении работы.
Добавлено в версии 225.
--now
При использовании с enable, disable, mask или reenable, также запускает/останавливает/пытается перезапустить юниты после успешного выполнения указанных операций с файлами юнитов.
Добавлено в версии 220.
--root=
При использовании с enable/disable/is-enabled (и связанных командах), использует указанный корневой путь при поиске файлов юнитов. Если этот параметр присутствует, systemctl будет работать непосредственно с файловой системой, вместо того чтобы обмениваться данными с демоном systemd для выполнения изменений.
--image=image
Принимает путь к файлу образа диска или узлу блочного устройства. Если указано, все операции применяются к файловой системе в указанном образе диска. Этот параметр аналогичен --root=, но работает с файловыми системами, хранящимися в образах дисков или блочных устройствах. Образ диска должен содержать либо только файловую систему, либо набор файловых систем в таблице разделов GPT, в соответствии со спецификацией [UAPI.2 Discoverable Partitions Specification]. Дополнительную информацию о поддерживаемых образах дисков см. в разделе systemd-nspawn(1) с тем же именем.
Добавлено в версии 252.
--image-policy=policy
Принимает строку политики для образа в качестве аргумента, как описано в systemd.image-policy(7). Политика применяется при работе с образом диска, указанным через --image=, см. выше. Если не указано, по умолчанию используется политика "*", то есть используются все распознанные файловые системы в образе.
--runtime
При использовании с командами enable, disable, edit (и связанными командами), вносит изменения только временно, поэтому они будут потеряны при следующей перезагрузке. Это означает, что изменения вносятся не в подкаталоги /etc/, а в /run/, при этом немедленный эффект остается таким же, однако, поскольку последний теряется при перезагрузке, изменения также теряются.
Аналогично, при использовании с set-property, вносит изменения только временно, поэтому они будут потеряны при следующей перезагрузке.
--preset-mode=
Принимает одно из значений: "full" (по умолчанию), "enable-only", "disable-only". При использовании с командами preset или preset-all, определяет, следует ли отключать и включать юниты в соответствии с правилами предустановки, или только включать, или только отключать.
Добавлено в версии 215.
-n, --lines=
При использовании с командой status, определяет количество строк журнала для отображения, начиная с самых последних. Принимает положительное целое число в качестве аргумента или 0 для отключения вывода журнала. По умолчанию не установлено.
-o, --output=
При использовании с командой status, определяет формат отображаемых записей журнала. Для доступных вариантов см. journalctl(1). По умолчанию "short".
--firmware-setup
При использовании с командами reboot, poweroff или halt, указывает прошивке системы перейти в интерфейс настройки прошивки при следующей загрузке. Обратите внимание, что эта функция может быть недоступна на всех системах.
Добавлено в версии 220.
--boot-loader-menu=timeout
При использовании с командами reboot, poweroff или halt, указывает загрузчику системы отображать меню загрузчика при следующей загрузке. Принимает значение времени в качестве параметра, указывающее время ожидания меню. Передайте ноль, чтобы отключить время ожидания меню. Обратите внимание, что не все загрузчики поддерживают эту функцию.
Добавлено в версии 242.
--boot-loader-entry=ID
При использовании с командами reboot, poweroff или halt, указывает загрузчику системы загружаться в определенную запись загрузчика при следующей загрузке. Принимает идентификатор записи загрузчика в качестве аргумента или "help" для отображения списка доступных записей. Обратите внимание, что не все загрузчики поддерживают эту функцию.
Добавлено в версии 242.
--reboot-argument=
Этот переключатель используется с командой reboot. Значение зависит от архитектуры и прошивки. Например, "recovery" может использоваться для запуска режима восстановления, а "fota" может использоваться для запуска обновления прошивки по беспроводной сети.
Добавлено в версии 246.
--plain
При использовании с командами list-dependencies, list-units или list-machines, вывод отображается в виде списка, а не дерева, и круги-маркеры опускаются.
Добавлено в версии 203.
--timestamp=
Изменяет формат отображаемых временных меток. Можно использовать следующие значения:
pretty (это значение по умолчанию)
"День ГГГГ-ММ-ДД ЧЧ:ММ:СС ЧЗ"
Добавлено в версии 248.
unix
"@секунд-с-эпохи"
Добавлено в версии 251.
us, μs
"День ГГГГ-ММ-ДД ЧЧ:ММ:СС.СССССС ЧЗ"
Добавлено в версии 248.
utc
"День ГГГГ-ММ-ДД ЧЧ:ММ:СС UTC"
Добавлено в версии 248.
us+utc, μs+utc
"День ГГГГ-ММ-ДД ЧЧ:ММ:СС.СССССС UTC"
Добавлено в версии 248.
Добавлено в версии 247.
--mkdir
При использовании с bind, создает целевой файл или каталог перед применением монтирования. Обратите внимание, что, хотя название этой опции предполагает, что она подходит только для каталогов, эта опция также создает целевой узел файла для монтирования, если объект для монтирования не является каталогом, а является обычным файлом, узлом устройства, сокетом или FIFO.
Добавлено в версии 248.
--marked
Разрешено только с reload-or-restart. Добавляет в очередь задания перезапуска для всех юнитов, у которых есть метка "needs-restart", и задания перезагрузки для юнитов, у которых есть метка "needs-reload". Если юнит, помеченный для перезагрузки, не поддерживает перезагрузку, будет добавлено в очередь задание перезапуска. Эти свойства можно задать с помощью команды set-property Markers=....
Если не используется параметр --no-block, systemctl будет ждать завершения заданий, добавленных в очередь.
Добавлено в версии 248.
--read-only
При использовании с bind, создает монтирование bind только для чтения.
Добавлено в версии 248.
--drop-in=ИМЯ
При использовании с edit, использует ИМЯ в качестве имени файла drop-in вместо override.conf.
Добавлено в версии 253.
--when=
При использовании с halt, poweroff, reboot или kexec, запланируйте выполнение действия в указанное время, которое должно соответствовать синтаксису, описанному в systemd.time(7) в разделе "СИНТАКСИС ВРЕМЕНИ". В частности, если указано "show", будет показано в настоящее время запланированное действие, которое можно отменить, передав пустую строку или "cancel". "auto" запланирует действие в соответствии с окном обслуживания или через одну минуту.
Добавлено в версии 254.
--stdin
При использовании с edit, содержимое файла будет прочитано из стандартного ввода, и редактор не будет запущен. В этом режиме старое содержимое файла полностью заменяется. Это полезно для "редактирования" файлов юнитов из скриптов:
$ systemctl edit --drop-in=limits.conf --stdin some-service.service <<EOF
[Unit]
AllowedCPUs=7,11
EOF
В этом режиме можно "редактировать" несколько файлов drop-in; одно и то же содержимое будет записано во все из них.
Добавлено в версии 256.
-H, --host=
Выполнить операцию удаленно. Укажите имя хоста или имя пользователя и имя хоста, разделенные символом "@", для подключения. Имя хоста может опционально заканчиваться портом, на котором прослушивает SSH, разделенным символом ":", а затем именем контейнера, разделенным символом "/", что позволяет подключаться непосредственно к определенному контейнеру на указанном хосте. Это будет использовать SSH для связи с удаленным экземпляром диспетчера машин. Имена контейнеров можно перечислить с помощью команды machinectl -H HOST. Поместите IPv6-адреса в квадратные скобки.
-M, --machine=
Выполнить операцию в локальном контейнере. Укажите имя контейнера для подключения, опционально с префиксом имени пользователя для подключения и символом "@". Если вместо имени контейнера используется специальная строка ".host", устанавливается соединение с локальной системой (что полезно для подключения к определенной пользовательской шине пользователя: "--user [email protected]"). Если синтаксис "@" не используется, соединение устанавливается от имени пользователя root. Если используется синтаксис "@", либо левая, либо правая часть могут быть опущены (но не обе), в этом случае подразумеваются имя локального пользователя и ".host".
-C, --capsule=
Выполнить операцию над капсулой. Укажите имя капсулы для подключения. См. [email protected](5)
для получения подробной информации о капсулах.
Добавлено в версии 256.
--no-ask-password
Не запрашивать у пользователя аутентификацию для привилегированных операций.
--no-pager
Не передавать вывод в постраничный просмотрщик.
--legend=BOOL
Включить или отключить печать легенды, то есть заголовков столбцов и нижнего колонтитула с подсказками.
Легенда печатается по умолчанию, если ее не отключить с помощью --quiet или аналогичного параметра.
-h, --help
Вывести краткий текст справки и выйти.
--version
Вывести короткую строку версии и выйти.
СТАТУС ВЫХОДА
При успешном выполнении возвращается 0, в противном случае - ненулевой код ошибки.
systemctl использует коды возврата, определенные LSB, как определено в LSB 3.0.0[3].
Таблица 5. Коды возврата LSB
┌───────┬────────────────────────────┬──────────────────────────┐
│ Value │ Описание в LSB │ Использование в systemd │
├───────┼────────────────────────────┼──────────────────────────┤
│ 0 │ "программа запущена или │ юнит активен │
│ │ служба в порядке" │ │
├───────┼────────────────────────────┼──────────────────────────┤
│ 1 │ "программа не запущена и │ юнит не находится в │
│ │ файл PID в /var/run существует" │ состоянии отказа (используется │
│ │ │ is-failed) │
├───────┼────────────────────────────┼──────────────────────────┤
│ 2 │ "программа не запущена и │ не используется │
│ │ файл блокировки в /var/lock │ │
│ │ существует" │ │
├───────┼────────────────────────────┼──────────────────────────┤
│ 3 │ "программа не запущена" │ юнит не активен │
├───────┼────────────────────────────┼──────────────────────────┤
│ 4 │ "статус программы или │ такого юнита не существует │
│ │ службы неизвестен" │ │
└───────┴────────────────────────────┴──────────────────────────┘
Сопоставление состояний служб LSB с состояниями юнитов systemd не является идеальным, поэтому лучше не полагаться на эти возвращаемые значения, а искать конкретные состояния и подсостояния юнитов.
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
$SYSTEMD_EDITOR
Редактор, используемый при редактировании юнитов; переопределяет $EDITOR и $VISUAL. Если ни $SYSTEMD_EDITOR, ни $EDITOR, ни $VISUAL не установлены или если их значение является пустой строкой, или если их выполнение завершилось с ошибкой, systemctl попытается выполнить известные редакторы в следующем порядке: editor(1), nano(1), vim(1), vi(1).
Добавлено в версии 218.
$SYSTEMD_LOG_LEVEL
Максимальный уровень логируемых сообщений (сообщения с более высоким уровнем логирования, т. е. менее важные, будут подавлены). Принимает список значений, разделенных запятыми. Значение может быть либо одним из следующих (в порядке убывания важности): emerg, alert, crit, err, warning, notice, info, debug, либо целым числом в диапазоне от 0 до 7. См. syslog(3) для получения дополнительной информации. Каждое значение может опционально начинаться с одной из следующих строк: console, syslog, kmsg или journal, за которой следует двоеточие, чтобы установить максимальный уровень логирования для данной цели (например, SYSTEMD_LOG_LEVEL=debug,console:info указывает, что логи должны быть уровня debug, за исключением случаев, когда логи записываются в консоль, тогда уровень должен быть info). Обратите внимание, что глобальный максимальный уровень логирования имеет приоритет над любыми уровнями логирования для отдельных целей.
$SYSTEMD_LOG_COLOR
Логическое значение. Если true, сообщения, записываемые в терминал, будут отображаться в цветах в соответствии с приоритетом.
Эта настройка полезна только тогда, когда сообщения записываются непосредственно в терминал, потому что journalctl(1) и другие инструменты, отображающие логи, будут раскрашивать сообщения на основе уровня логирования самостоятельно.
$SYSTEMD_LOG_TIME
Логическое значение. Если true, сообщения в консоли будут иметь префикс в виде временной метки.
Эта настройка полезна только тогда, когда сообщения записываются непосредственно в терминал или файл, потому что journalctl(1) и другие инструменты, отображающие логи, будут добавлять временные метки на основе метаданных записи.
$SYSTEMD_LOG_LOCATION
Логическое значение. Если true, сообщения будут иметь префикс, содержащий имя файла и номер строки в исходном коде, где возникло сообщение.
Обратите внимание, что информация о местоположении лога часто прикрепляется к записям журнала в качестве метаданных. Однако включение ее непосредственно в текст сообщения все же может быть полезно при отладке программ.
$SYSTEMD_LOG_TARGET
Назначение для сообщений журнала. Одно из следующих значений: console (запись в подключенный терминал), console-prefixed (запись в подключенный терминал, но с префиксами, кодирующими уровень логирования и "facility", см. syslog(3), kmsg (запись в буфер кольцевого журнала ядра), journal (запись в журнал), journal-or-kmsg (запись в журнал, если он доступен, и в kmsg в противном случае), auto (определение подходящей цели логирования автоматически, по умолчанию), null (отключение вывода логов).
$SYSTEMD_PAGER, $PAGER
Программа постраничного просмотра, используемая, когда не указан параметр --no-pager. Если переменная среды $SYSTEMD_PAGER установлена, используется она; в противном случае используется $PAGER. Если ни $SYSTEMD_PAGER, ни $PAGER не установлены, поочередно перебирается набор известных программ постраничного просмотра, включая [less]({filename}../../less)(1) и more(1), пока одна из них не будет найдена. Если ни одна программа постраничного просмотра не обнаружена, программа постраничного просмотра не вызывается. Установка этих переменных среды в пустую строку или значение "cat" эквивалентна передаче параметра --no-pager.
Примечание: если $SYSTEMD_PAGERSECURE не установлена, $SYSTEMD_PAGER и $PAGER могут использоваться только для отключения программы постраничного просмотра (с помощью "cat" или ""), и в противном случае игнорируются.
$SYSTEMD_LESS
Переопределяет параметры, передаваемые программе less (по умолчанию "FRSXMK").
Пользователи могут захотеть изменить два параметра:
K
Этот параметр указывает программе постраничного просмотра немедленно завершать работу при нажатии Ctrl+C. Чтобы разрешить программе less обрабатывать Ctrl+C самостоятельно и возвращаться к командной строке программы постраничного просмотра, снимите этот параметр.
Если значение $SYSTEMD_LESS не включает "K", и вызываемая программа постраничного просмотра — less, Ctrl+C будет игнорироваться исполняемым файлом, и его должна обрабатывать программа постраничного просмотра.
X
Этот параметр указывает программе постраничного просмотра не отправлять строки инициализации и деинициализации termcap в терминал. Он установлен по умолчанию, чтобы вывод команды оставался видимым в терминале даже после выхода программы постраничного просмотра. Однако это препятствует работе некоторых функций программы постраничного просмотра, в частности, постраничный вывод нельзя прокручивать с помощью мыши.
Обратите внимание, что установка обычной переменной среды $LESS не имеет никакого эффекта для вызовов less инструментами systemd.
См. [less]({filename}../../less)(1) для получения дополнительной информации.
$SYSTEMD_LESSCHARSET
Переопределяет кодировку, передаваемую программе less (по умолчанию "utf-8", если вызывающий терминал определен как совместимый с UTF-8).
Обратите внимание, что установка обычной переменной среды $LESSCHARSET не имеет никакого эффекта для вызовов less инструментами systemd.
$SYSTEMD_PAGERSECURE
Обычные программы постраничного просмотра, такие как [less]({filename}../../less)(1), в дополнение к "постраничному просмотру", т. е. прокрутке вывода, поддерживают открытие или запись в другие файлы и выполнение произвольных команд оболочки.
Когда команды вызываются с повышенными привилегиями, например, с помощью [sudo]({filename}../../sudo)(8) или pkexec(1), программа постраничного просмотра становится границей безопасности. Необходимо следить за тем, чтобы использовались только программы с строго ограниченной функциональностью в качестве программ постраничного просмотра, и не разрешать непреднамеренные интерактивные функции, такие как открытие или создание новых файлов или запуск подпроцессов. "Безопасный режим" для программы постраничного просмотра можно включить, как описано ниже, если программа постраничного просмотра поддерживает это (большинство программ постраничного просмотра не написаны с учетом этого). Рекомендуется либо явно включить "безопасный режим", либо полностью отключить программу постраничного просмотра с помощью --no-pager или PAGER=cat при предоставлении неавторизованным пользователям возможности выполнять команды с повышенными привилегиями.
Эта опция принимает булево значение. При установке в true, включается «безопасный режим» пейджера.
В «безопасном режиме» при вызове пейджера будет установлена переменная LESSSECURE=1, что указывает пейджеру отключить команды, открывающие или создающие новые файлы, или запускающие новые подпроцессы.
В настоящее время только less(1) известно, что понимает эту переменную и реализует «безопасный режим».
При установке в false, никаких ограничений для пейджера не применяется. Установка SYSTEMD_PAGERSECURE=0 или отсутствие ее в унаследованной среде может позволить пользователю выполнять произвольные команды.
Если переменная $SYSTEMD_PAGERSECURE не установлена, инструменты systemd пытаются автоматически определить, следует ли включать «безопасный режим» и поддерживает ли его пейджер. «Безопасный режим» включается, если эффективный UID не совпадает с UID владельца сеанса входа, см. geteuid(2) и sd_pid_get_owner_uid(3), или при запуске под sudo(8) или аналогичными инструментами (установлена переменная $SUDO_UID [4]). В этих случаях SYSTEMD_PAGERSECURE=1 будет установлена, и пейджеры, которые не поддерживают «безопасный режим», использоваться не будут. Обратите внимание, что эта автоматическая проверка охватывает только наиболее распространенные механизмы повышения привилегий и предназначена для удобства. Рекомендуется явно установить $SYSTEMD_PAGERSECURE или отключить пейджер.
Обратите внимание, что если переменные $SYSTEMD_PAGER или $PAGER должны быть учтены, кроме как для отключения пейджера, то $SYSTEMD_PAGERSECURE также должна быть установлена.
^ SYSTEMD_COLORS
Принимает булево значение. Если установлено значение true, systemd и связанные с ним утилиты будут использовать цвета в своем выводе, в противном случае вывод будет монохромным. Кроме того, переменная может принимать одно из следующих специальных значений: "16", "256", чтобы ограничить использование цветов базовыми 16 или 256 цветами ANSI соответственно. Это можно указать, чтобы переопределить автоматическое определение на основе переменной $TERM и того, к чему подключен терминал.
^ SYSTEMD_URLIFY
Значение должно быть булевым. Определяет, следует ли генерировать кликабельные ссылки в выводе для терминалов, поддерживающих эту функцию. Это можно указать, чтобы переопределить решение, которое принимает systemd на основе переменной $TERM и других условий.
СМОТРИТЕ ТАКЖЕ
systemd(1), journalctl(1), loginctl(1), machinectl(1), systemd.unit(5), systemd.resourcecontrol(5), systemd.special(7), wall(1), systemd.preset(5), systemd.generator(7), glob(7)
ПРИМЕЧАНИЯ
UAPI.1 Boot Loader Specification
https://uapi-group.org/specifications/specs/boot_loader_specification
UAPI.2 Discoverable Partitions Specification
https://uapi-group.org/specifications/specs/discoverable_partitions_specification
LSB 3.0.0
http://refspecs.linuxbase.org/LSB_3.0.0/LSB-PDA/LSB-PDA/iniscrptact.html
Рекомендуется, чтобы другие инструменты устанавливали и проверяли переменную $SUDO_UID по мере необходимости, рассматривая ее как общий интерфейс.