
Я пытаюсь получить статус подразделения, но только первые 3 строки выглядят так:
systemctl --user status resilio-sync --lines=3
Я пробовал разные варианты с -n 3 и т. д., ничего не работает. И странная часть: он всегда показывает полный журнал (13 строк), вместо 10 строк, которые должны быть по умолчанию согласно документацииsystemctl.
Попытка systemctl status
это подтверждает: на терминал выводятся все 45 строк, хотя на самом деле должно быть 10.
Я что-то упустил? Насколько мне известно, я ничего не менял.
В качестве обходного пути я сейчас использую:
systemctl --user status resilio-sync | sed -ne '1,3p'
но я бы предпочел исправить основную проблему и использовать собственную команду. Система — Kali Linux (re4son-kernel, sticky fingers) на Raspberry Pi (легко свалить вину на эту странную настройку, но поскольку это основная функциональность Linux, я не думаю, что это должно иметь значение)
решение1
Команда systemctl status
отображает состояние службы и соответствующие строки из журнала journalctl
, --lines=3
ограничит отображаемое количество строк из журнала до 3. Например:
systemctl --user status resilio-sync --lines=0
будет отображать только статус esilio-sync
сервиса без journalctl
журнала.
-n, --lines=
При использовании сположение дел, элементы управленияколичество строк журналадля отображения, считая от самых последних. Принимает положительный целочисленный аргумент, или0 для отключения вывода журнала. По умолчанию 10.
Чтобы ограничить вывод команды, systemctl status
вы можете использовать параметры:
systemctl check resilio-sync
systemctl is-active resilio-sync
systemctl is-enabled resilio-sync
или сгруппировав варианты:
systemctl is-active is-enabled resilio-sync
решение2
Именно для этого и была разработана команда head.
systemctl --user status resilio-sync | head -n 3