schedule2021-07-02

systemctlの起動中のサービス一覧を表示するコマンド

サーバのアップデート兼移行のためインストールしているパッケージやサービスの状態を調べたりしています。

この記事では、systemctlの起動中や自動起動になっているサービス一覧を取得していきます。

起動中のサービス一覧を表示するコマンド

ステータスがactiveになっているサービスのリストを表示する。

# systemctl list-units --type=service
  • list-unitsはデフォルトでアクティブなユニットのみを表示します。
  • --typeは表示するタイプを指定します。 カンマ区切りで複数指定できる--type=service,socketserviceの他にsocketmountdeviceなどあり、--type=serviceを取って実行するといっぱい出てきて面白い。

▼ 実行した例 (CentOS 7.9)

$ sudo systemctl list-units --type=service
[sudo] suzu6 のパスワード:
  UNIT                             LOAD   ACTIVE SUB     DESCRIPTION
  abrt-ccpp.service                loaded active exited  Install ABRT coredump hook
  abrt-oops.service                loaded active running ABRT kernel log watcher
  abrtd.service                    loaded active running ABRT Automated Bug Reporting Tool
  atd.service                      loaded active running Job spooling tools
  auditd.service                   loaded active running Security Auditing Service
  chronyd.service                  loaded active running NTP client/server
  crond.service                    loaded active running Command Scheduler
  dbus.service                     loaded active running D-Bus System Message Bus
  firewalld.service                loaded active running firewalld - dynamic firewall daem
  getty@tty1.service               loaded active running Getty on tty1
...
  • UNIT: systemdユニット名
  • LOAD: ユニットの構成がsystemdによって解析されたかどうか。ロードされたユニットの設定はメモリに保持されます。
  • ACTIVE: ユニットがアクティブかどうかに関する状態概要。これは通常、ユニットが正常に起動したかどうかを判断する極めて基本的な方法です。
  • SUB: 低レベルの状態を表し、ユニットに関するより詳細な情報を示します。多くの場合、ユニットのタイプ、状態、および実際のユニットの実行方法によって異なります。
  • DESCRIPTION: ユニットの内容/実行内容の短いテキストによる説明。

全てのサービスの状態を表示する

list-unitsはデフォルトでアクティブなユニットのみを表示するため、全ての状態を表示したい場合はオプション--allを付ける。

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

▼ 実行した例 (CentOS 7.9)

$ sudo systemctl list-units --all  --type=service
  UNIT                                             LOAD      ACTIVE   SUB     DESCRIPTION
  abrt-ccpp.service                                loaded    active   exited  Install ABRT coredump hook
  abrt-oops.service                                loaded    active   running ABRT kernel log watcher
  abrt-vmcore.service                              loaded    inactive dead    Harvest vmcores for ABRT
  abrt-xorg.service                                loaded    inactive dead    ABRT Xorg log watcher
  abrtd.service                                    loaded    active   running ABRT Automated Bug Reporting Tool
  atd.service                                      loaded    active   running Job spooling tools
  auditd.service                                   loaded    active   running Security Auditing Service
  chronyd.service                                  loaded    active   running NTP client/server
  cpupower.service                                 loaded    inactive dead    Configure CPU power related settings
  crond.service                                    loaded    active   running Command Scheduler
  dbus.service                                     loaded    active   running D-Bus System Message Bus
● display-manager.service                          not-found inactive dead    display-manager.service
  dm-event.service                                 loaded    inactive dead    Device-mapper event daemon

ACTIVEの状態はactive, inactive, failedと3種類ありました。

すべてのユニットファイルの一覧と自動起動の状態

list-unitsコマンドは、systemdが解析してメモリにロードしようとしたユニットのみを表示します。systemdは必要と判断したユニットしか読み込まないめ、必ずしもシステムで利用可能なユニットすべてが表示されるとは限りません。systemdがロードしないものを含め、systemdパス内の利用可能なユニットファイルをすべて表示するには、 list-unit-filesコマンドを使用します。

ついでにSTATEのカラムで自動起動の有効無効が確認できる。

# systemctl list-unit-files --type=service

▼ 実行した例 (CentOS 7.9)

$ sudo  systemctl list-unit-files --type=service
UNIT FILE                                     STATE   
abrt-ccpp.service                             enabled 
abrt-oops.service                             enabled 
abrt-pstoreoops.service                       disabled
abrt-vmcore.service                           enabled 
abrt-xorg.service                             enabled 
abrtd.service                                 enabled 
arp-ethers.service                            disabled
atd.service                                   enabled 
auditd.service                                enabled 
autovt@.service                               enabled 
blk-availability.service                      disabled
brandbot.service                              static
chrony-dnssrv@.service                        static
chrony-wait.service                           disabled
chronyd.service                               enabled 
console-getty.service                         disabled
console-shell.service                         disabled
lines 1-18
  • enabled: 自動起動有効
  • disabled: 自動起動無効
  • static: おそらくプロセスとかがないタイプのサービス、たぶん

個別のサービスの状態は↓で確認できる

$ systemctl is-enabled chronyd.service
enabled

参考