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

92

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

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

    
задан oceanBT 05.07.2016 в 20:17
источник

3 ответа

137

systemctl list-unit-files | grep enabled отобразит все включенные .

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

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

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

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

    
ответ дан Dorian 05.07.2016 в 20:52
источник
32

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

   --state=
       The argument should be a comma-separated list of unit LOAD, SUB, or ACTIVE states. When listing units, show only those in the specified
       states. Use --state=failed to show only failed units.

Пояснение:

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

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

systemctl list-unit-files --state=enabled

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

    
ответ дан Paranoid Panda 05.07.2016 в 20:58
17
  1. Чтобы перечислить все службы systemd , которые находятся в state=active и sub=running

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

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

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

    
ответ дан Ankit Kumar Honey 14.09.2017 в 05:59