Читать — значит думать чужой головой вместо своей собственной (А. Шопенгауэр).

6 мин для чтенияКак вывести список системных служб в Linux

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
2 августа 2020
Как вывести список системных служб в Linux
Хотя systemd решает многие проблемы с управлением системой, иногда это также сбивает с толку.

Даже такая простая задача, как перечисление системных сервисов, может заставить вас задуматься.

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

Мы предполагаем, что у вас есть некоторые знания о systemd, но даже если вы этого не сделаете, все будет хорошо.

 

Как вывести список активных сервисов в systemd

Сервисы systemd управляются командой systemctl. Если вы запускаете systemctl без каких-либо аргументов, он вызывает подкоманду по умолчанию list-units и перечисляет различные типы системных модулей, таких как службы, сокеты, цели и т. д.

Но ваша цель состоит в том, чтобы перечислить сервисы, чтобы вы указали тип устройства с флагом –type, например:

systemctl --type=service

 

Вы заметили, что мы не указали подкоманду list-units, потому что она используется по умолчанию? Если вы хотите следовать соглашению, вы также можете указать это. Мы предпочитаем это таким образом, и мы буду следовать этой конвенции в оставшейся части статьи.

systemctl list-units --type=service

 

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

  UNIT                     LOAD   ACTIVE SUB     DESCRIPTION                                                       
  accounts-daemon.service  loaded active running Accounts Service                                                  
  acpid.service            loaded active running ACPI event daemon                                                 
  alsa-restore.service     loaded active exited  Save/Restore Sound Card State                                     
  apparmor.service         loaded active exited  Load AppArmor profiles                                            
  apport.service           loaded active exited  LSB: automatic crash report generation

 

Позвольте нам объяснить вывод:

  • UNIT: имя системного блока.
  • LOAD: был ли файл конфигурации модуля проанализирован systemd.
  • ACTIVE: состояние высокого уровня устройства.
  • SUB: состояние низкого уровня устройства. Активный блок может находиться в рабочем состоянии или в состоянии выхода. Это значение зависит от типа услуги.

Как видите, вы можете перечислить загруженные сервисы в вашей системе Linux. Но активная служба systemd может быть запущена или может быть закрыта (после успешного запуска).

 

Список всех запущенных сервисов systemd

Активное состояние также может иметь под-статус, например, запущен, завершен и т. д. Вы можете использовать тот же флаг –state с под-состоянием.

Чтобы вывести список запущенных сервисов systemd, используйте такой флаг –state=running:

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

 

Вот пример вывода для моей системы, показывающий некоторые из запущенных сервисов systemd:

  UNIT                        LOAD   ACTIVE SUB     DESCRIPTION                                                     
  accounts-daemon.service     loaded active running Accounts Service                                                
  acpid.service               loaded active running ACPI event daemon                                               
  avahi-daemon.service        loaded active running Avahi mDNS/DNS-SD Stack                                         
  bluetooth.service           loaded active running Bluetooth service                                               
  bolt.service                loaded active running Thunderbolt system service

 

Список всех загруженных системных сервисов, включая неактивные

По умолчанию команда systemctl отображает только загруженные и активные модули.

Читать  Nginx показывает пустые страницы PHP с FastCGI или PHP-FPM

Если вы хотите перечислить все загруженные сервисы, включая неактивные, используйте флаг –all:

systemctl list-units --all --type=service

 

Теперь вы можете увидеть даже неактивные сервисы:

  UNIT                                                  LOAD      ACTIVE   SUB     DESCRIPTION                                                                     
  accounts-daemon.service                               loaded    active   running Accounts Service                                                                
  acpid.service                                         loaded    active   running ACPI event daemon                                                               
  alsa-restore.service                                  loaded    active   exited  Save/Restore Sound Card State                                                   
  alsa-state.service                                    loaded    inactive dead    Manage Sound Card State (restore and store)                                     
  anacron.service                                       loaded    inactive dead    Run anacron jobs                                                                
  apparmor.service                                      loaded    active   exited  Load AppArmor profiles

 

Список всех неактивных сервисов systemd

Если вы хотите увидеть только неактивные услуги, вы можете комбинировать различные флаги , как –all и –state, как это:

systemctl list-units --all --type=service --state=inactive

 

Как вы можете видеть в выводе, он отображает все неактивные сервисы systemd:

  UNIT                                   LOAD      ACTIVE   SUB  DESCRIPTION                                                                     
  alsa-state.service                     loaded    inactive dead Manage Sound Card State (restore and store)                                     
  anacron.service                        loaded    inactive dead Run anacron jobs                                                                
  apport-autoreport.service              loaded    inactive dead Process error reports when automatic reporting is enabled                       
  apt-daily-upgrade.service              loaded    inactive dead Daily apt upgrade and clean activities                                          
  apt-daily.service                      loaded    inactive dead Daily apt download activities                                                   
● auditd.service                         not-found inactive dead auditd.service

 

Список всех установленных сервисов systemd (даже если они не загружены)

Каждый системный модуль, будь то сервис, сокет или любой другой модуль, имеет файл модуля, который

systemctl list-unit-files --type=service

Вот что вы должны увидеть:

UNIT FILE                                  STATE           VENDOR PRESET
accounts-daemon.service                    enabled         enabled      
acpid.service                              disabled        enabled      
alsa-restore.service                       static          enabled      
alsa-state.service                         static          enabled      
alsa-utils.service                         masked          enabled      
anacron.service                            enabled         enabled      
apparmor.service                           enabled         enabled      
apport-autoreport.service                  static          enabled      
apport-forward@.service                    static          enabled

 

Объяснение каждого типа состояния будет слишком длинным и не рассматривается в этой статье.

 

Список всех системных сервисов, которые будут запускаться при каждой загрузке автоматически

Чтобы увидеть все службы systemd, которые будут запускаться автоматически при каждой загрузке системы, используйте эту команду:

systemctl list-unit-files --type=service --state=enabled

 

Вы путаете с включенным состоянием? Это нормально. Многие новые пользователи путают включенную системную службу с запущенной службой.

Однако включенная служба systemd означает, что служба будет активирована автоматически при загрузке системы.

UNIT FILE                                  STATE   VENDOR PRESET
accounts-daemon.service                    enabled enabled      
anacron.service                            enabled enabled      
apparmor.service                           enabled enabled      
autovt@.service                            enabled enabled      
avahi-daemon.service                       enabled enabled      
binfmt-support.service                     enabled enabled      
bluetooth.service                          enabled enabled      
console-setup.service                      enabled enabled      
containerd.service                         enabled enabled      
cron.service                               enabled enabled      
cups-browsed.service                       enabled enabled      
cups.service                               enabled enabled      
dbus-fi.w1.wpa_supplicant1.service         enabled enabled      

 

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

Предустановка поставщика определяет автоматическое поведение модуля systemd при установке программы.

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

Читать  Bashhub - открывает доступ к истории терминала из любой точки

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

sudo systemd enable xyz.service

 

Отобразить состояние определенного сервиса systemd

До сих пор вы видели различные способы листинга услуг. Но ничто не фокусируется на одном сервисе.

Вы можете получить подробную информацию о сервисе systemd, используя подкоманду systemctl status. Завершение вкладки работает с этой командой.

systemctl status <service_name>

 

Вот пример со службой сетевого менеджера:

abhishek@itsfoss:~$ systemctl status NetworkManager.service 
● NetworkManager.service - Network Manager
     Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-08-02 12:41:22 IST; 6h 3min ago
       Docs: man:NetworkManager(8)
   Main PID: 711 (NetworkManager)
      Tasks: 3 (limit: 9157)
     Memory: 14.2M
     CGroup: /system.slice/NetworkManager.service
             └─711 /usr/sbin/NetworkManager --no-daemon

Aug 02 12.42:50 itsfoss NetworkManager[711]: <info>  [1595472170.7159] device (wlp58s0): Activation: successful, device activated.
Aug 02 12.42:50 itsfoss NetworkManager[711]: <info>  [1595472170.7179] manager: startup complete
Aug 02 12.42:51 itsfoss NetworkManager[711]: <info>  [1595472171.5592] manager: NetworkManager state is now CONNECTED_GLOBAL
Aug 02 12.42:52 itsfoss NetworkManager[711]: <info>  [1595472172.7973] dhcp6 (wlp58s0): activation: beginning transaction (timeout in 45 seconds)
Aug 02 12.42:52 itsfoss NetworkManager[711]: <info>  [1595472172.8017] policy: set 'JioFi3_215810' (wlp58s0) as default for IPv6 routing and DNS
Aug 02 12.42:52 itsfoss NetworkManager[711]: <info>  [1595472172.8058] dhcp6 (wlp58s0): option dhcp6_name_servers   => 'fe80::a8dc:79ff:fe1b:57fe'
Aug 02 12.42:52 itsfoss NetworkManager[711]: <info>  [1595472172.8059] dhcp6 (wlp58s0): state changed unknown -> bound
Aug 02 12.42:59 itsfoss NetworkManager[711]: <info>  [1595472179.9251] agent-manager: agent[bdd71d4a66098713,:1.84/org.gnome.Shell.NetworkAgent/1>
Aug 02 12:42:10 itsfoss NetworkManager[711]: <info>  [1595483290.7874] manager: NetworkManager state is now CONNECTED_SITE
Aug 02 12:42:11 itsfoss NetworkManager[711]: <info>  [1595483291.5893] manager: NetworkManager state is now CONNECTED_GLOBAL

 

Вы можете видеть, что он предоставляет много полезной информации, такой как состояние службы, справочная страница службы, используемая память, идентификатор процесса и т. д. Он также показывает последние несколько журналов журнала для службы .

Если вы хотите проверить, активен ли сервис в сценарии оболочки, вы можете использовать подкоманду is-active. Выход для активного.

systemctl is-active application.service

 

Аналогично, если вы хотите проверить, включена ли служба (настроена ли она на автоматический запуск во время загрузки), вы можете использовать подкоманду is-enabled. Выход для включенного сервиса.

systemctl is-enabled application.service

 

Вывод

Мы думаем, что теперь у вас есть лучшее понимание перечисления сервисов systemd. Мы надеемся, что вы узнали немного нового о командах systemd и systemctl.

Не стесняйтесь оставлять свои отзывы, вопросы или предложения в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close