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


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

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


138
2017-07-05 18:17


происхождения


что вы подразумеваете под включенным? Вы имеете в виду сервисы, которые работают? - Gen
@Gen, предоставляющий услугу, сильно отличается от ее запуска. Видеть man systemctl, - Jos
Просто, чтобы вы знали, я обновил свой ответ.


ответы:


systemctl list-unit-files | grep enabled перечислит все включен из них.

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

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

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

Запуск означает, что он фактически работает прямо сейчас, но если он не включен, он не перезагружается при перезагрузке.


203
2017-07-05 18:52



раздражает необходимость использования внешнего инструмента (grep), чтобы показать эту важную информацию. Но спасибо, что показали нам дорогу :) - Felipe Alvarez
@FelipeAlvarez Правильно. Но так работает Linux. Многие небольшие двоичные файлы, которые хорошо работают друг с другом. systemctl делает то, что задано, оно перечисляет службы. В systemctl нет встроенной команды фильтрации, так как grep уже существует и может хорошо работать с выходом любой программы. Так оно всегда было :) - Dorian
Я согласен, и так должно быть. Но systemd уже пытается сделать так много, что мне интересно, почему он не может перечислять разрешенные службы? - Felipe Alvarez
systemctl | grep running ничего не перечислите мне! Даже если что-то работает, отображается только для его статуса: enabled, disabled, masked, static - Cirelli94
Simpler: systemctl list-unit-files --state=running - Will


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

--state=

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

Объяснение:

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

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

systemctl list-unit-files --state=enabled

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


44
2017-07-05 18:58



Не отвечает на вопрос; active знак равно enabled, - Reinier Post
@ReinierPost: я не могу помочь, что manpage не дает информации об этом, я дал лучший ответ, который мог бы получить с информацией, которую я имел. Как вы можете видеть, есть другой ответ, который принят.
Я знаю, но неправильно (вводящий в заблуждение), чтобы недействительный ответ был немодифицирован, и все, кажется, делают это, когда речь идет о конкретном вопросе (это не единственный случай). - Reinier Post
Нет, это повод квалифицировать ваш ответ. - Reinier Post
Чтобы включить и запустить в одно и то же время: systemctl enable --now ... - Aurélien Ooms


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

    systemctl list-units --type=service --state=running
    
  2. Чтобы перечислить все systemd которые находятся в state=active и sub либо запущен, либо вышел

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

Надеюсь, это решает проблему.


34
2017-09-14 03:59



Определенно улучшение принятого ответа. Благодаря! - smac89


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

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

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

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

1
2017-07-30 16:51