systemctl show: действующие значения параметров unit
Печатает действующие свойства unit в виде «ключ=значение»: не то, что написано в файле, а то, что systemd разобрал и применил.
Что делает
Разница с systemctl cat принципиальна. Первая команда показывает текст файлов, вторая — результат их разбора со всеми значениями по умолчанию, слиянием переопределений и вычисленными зависимостями. При разборе расхождений нужна именно вторая.
Помимо параметров тут есть счётчики: число перезапусков, пиковое потребление памяти, время последнего запуска, код завершения. Это готовые числа для мониторинга, не требующие разбора текста.
Где ставится. Команда в терминале. Ключ -p ограничивает вывод нужными свойствами.
Значения
| Значение | Что происходит |
|---|---|
systemctl show имя | все свойства: их больше двухсот. |
systemctl show имя -p ExecStart -p User | только нужные свойства. |
systemctl show имя -p NRestarts --value | только значение, без имени: удобно для скриптов. |
systemctl show -p DefaultTimeoutStartSec | свойства менеджера, без указания unit. |
Пример
Проверка действующих настроек при разборе.
systemctl show myapp.service -p Type -p ExecStart -p User -p WorkingDirectory
systemctl show myapp.service -p NRestarts -p ExecMainStatus -p Result
systemctl show myapp.service -p NeedDaemonReload
Последняя строка отвечает на вопрос «применена ли моя правка» — одним словом вместо чтения предупреждений.
Типичные ошибки
Свойств очень много: без ключа ограничения вывод нечитаем.
Значения промежутков времени печатаются в микросекундах: для человека это не всегда очевидно.
Команда показывает применённое состояние, а не файл: после правки без перезагрузки конфигурации значения останутся прежними.
Связанные ошибки
- Warning: The unit file … changed on diskПредупреждение о том, что unit-файл изменился на диске: systemd работает со старой версией. Когда нужен daemon-reload.
- Переопределение через drop-in не применяетсяПравка через systemctl edit или файл в каталоге .d не действует: разбор причин, включая особенность списочных параметров и ExecStart.
- Промежутки времени в unit-файле разбираются не такЗначения времени без единицы читаются как секунды. Разбор форматов и частых ошибок в таймаутах.
Рядом стоящие параметры
Источники
- systemctl(1)
- Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)