Как перечислить все включенные службы из systemctl?

Как я могу перечислить все enabled услуги от systemctl?

Я знаю, что бегу systemctl команда сама по себе перечисляет все службы, но я хотел бы получить только enabled те.

systemctl list-unit-files | grep enabled будет перечислен весь включен те.

Если вы хотите, какие из них в настоящее время бегущий, вам нужно systemctl | grep running.

Используйте тот, который вы ищете. Включен, это не значит, что он запущен. И запуск не означает, что он включен. Это две разные вещи.

Включено означает, что система запустит службу при следующей загрузке. Поэтому, если вы включаете службу, вам все равно нужно запустить ее вручную или перезагрузить, и она запустится.

Запущенный означает, что он действительно запущен прямо сейчас, но если он не включен, он не перезапустится при перезагрузке.

man systemctl состояния:

--state=

Аргумент должен представлять собой разделенный запятыми список единиц измерения LOAD, SUB, или ACTIVE состояния. При перечислении единиц измерения показывайте только те, которые находятся в указанных состояниях. Воспользуйся --state=failed показывать только вышедшие из строя устройства.

Объяснение:

LOAD: Отражает, было ли правильно загружено определение единицы измерения.
ACTIVE: Состояние активации блока высокого уровня, т.е. обобщение SUB.
SUB: Состояние активации устройства низкого уровня, значения зависят от типа устройства.

Хотя вы также можете использовать это, чтобы показывать только enabled агрегаты с:

systemctl list-unit-files --state=enabled

Если единица измерения является enabled это означает, что система запустит его при запуске. Хотя установка чего-то на enabled на самом деле это также не так start это так, что вам нужно будет сделать это вручную или перезагрузить систему после установки ее на enabled.

Чтобы перечислить все systemd услуги, которые находятся в state=active и sub=running

systemctl list-units --type=service --state=running

Чтобы перечислить все systemd серии, которые находятся в state=active и подлодка либо запущена, либо вышла

systemctl list-units --type=service --state=active

Чтобы увидеть "включенные" службы, включая те, которые все еще находятся в стадии запуска / инициализации:

systemctl list-unit-files --type service --state enabled,generated

Чтобы просмотреть все запущенные в данный момент службы, запустите:

systemctl list-units --type service --state running

Существует хорошее графическое приложение под названием Stacer, в котором вы можете управлять всеми сервисами.

enter image description here

Проверьте его ссылку на Github Стейсер Github
Также проверьте Сеть для получения дополнительной информации

Также обзор всех активных и вышедших из строя служб:

systemctl list-units --type service --state running,failed

В дополнение к текущим ответам я использую следующее, чтобы получить только названия служб:

systemctl list-units --type=service --state=active,running | awk '/.*\.service/ {print $1}'

Вместо табличного формата это упрощает передачу только этих служб в другую программу

@Gen включение службы сильно отличается от ее запуска. См. раздел "man systemctl`.

Очаровательный. Ответ с самым низким рейтингом - это самый “правильный” ответ, даже если это явно не лучший ответ. Этот превосходный вопрос (и ответы на него) - интересный пример того, как systemd нарушает давние (и блестящие) принципы проектирования Unix & Co. @FelipeAlvarez жалуется, что наиболее общепринятый ответ предполагает, что systemd следует философии дизайна unix, но systemd / systemctl может делать именно то, что он хочет (большинство опытных пользователей просто сочтут это полным раздуванием). Я начинаю более ясно понимать, почему Линус Торвальдс так яростно критикует systemd.

что вы подразумеваете под включенным? Вы имеете в виду запущенные службы?