サービスのステータスの表示

サービスが実行中かどうかを確認するには、is-activeサブコマンドを使用します。次の例に示すように、出力はアクティブまたは非アクティブになります。

sudo systemctl is-active httpd
active
systemctl is-active sshd
inactive

statusサブコマンドは、サービスを実装する制御グループ(CGroup)のタスクを表示するツリーなど、サービスのステータスの詳細サマリーを提供します:

sudo systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since ...
     Docs: man:httpd.service(8)
 Main PID: 11832 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 26213)
   Memory: 32.5M
   CGroup: /system.slice/httpd.service
           ├─11832 /usr/sbin/httpd -DFOREGROUND
           ├─11833 /usr/sbin/httpd -DFOREGROUND
           ├─11834 /usr/sbin/httpd -DFOREGROUND
           ├─11835 /usr/sbin/httpd -DFOREGROUND
           └─11836 /usr/sbin/httpd -DFOREGROUND

Jul 17 00:14:32 Unknown systemd[1]: Starting The Apache HTTP Server...
Jul 17 00:14:32 Unknown httpd[11832]: Server configured, listening on: port 80
Jul 17 00:14:32 Unknown systemd[1]: Started The Apache HTTP Server.

cgroupは相互にバインドされているプロセスのコレクションであり、システム・リソースへのアクセスを制御できます。この例では、httpdサービスのcgrouphttpd.serviceであり、systemスライスにあります。

スライスはシステム上のcgroupsを複数のカテゴリに分割します。スライスとcgroup階層を表示するには、systemd-cglsコマンドを使用します:

sudo systemd-cgls
Control group /:
-.slice
├─user.slice
│ └─user-1000.slice
│   ├─user@1000.service
│   │ └─init.scope
│   │   ├─6488 /usr/lib/systemd/systemd --user
│   │   └─6492 (sd-pam)
│   └─session-7.scope
│     ├─6484 sshd: root [priv]
│     ├─6498 sshd: root@pts/0
│     ├─6499 -bash
│     ├─6524 sudo systemd-cgls
│     ├─6526 systemd-cgls
│     └─6527 less
├─init.scope
│ └─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 16
└─system.slice
  ├─rngd.service
  │ └─1266 /sbin/rngd -f --fill-watermark=0
  ├─irqbalance.service
  │ └─1247 /usr/sbin/irqbalance --foreground
  ├─libstoragemgmt.service
  │ └─1201 /usr/bin/lsmd -d
  ├─systemd-udevd.service
  │ └─1060 /usr/lib/systemd/systemd-udevd
  ├─polkit.service
  │ └─1241 /usr/lib/polkit-1/polkitd --no-debug
  ├─chronyd.service
  │ └─1249 /usr/sbin/chronyd
  ├─auditd.service
  │ ├─1152 /sbin/auditd
  │ └─1154 /usr/sbin/sedispatch
  ├─tuned.service
  │ └─1382 /usr/libexec/platform-python -Es /usr/sbin/tuned -l -P
  ├─systemd-journald.service
  │ └─1027 /usr/lib/systemd/systemd-journald
  ├─atd.service
  │ └─1812 /usr/sbin/atd -f
  ├─sshd.service
  │ └─1781 /usr/sbin/sshd

system.sliceには、サービスと別のシステムのプロセスが含まれます。user.sliceには、scopesと呼ばれる一時cgroupで実行されるユーザー・プロセスが含まれます。この例では、ID 1000のユーザーのプロセスは、スライス/user.slice/user-1000.sliceのスコープsession-7.scopeで実行されています。

systemctlコマンドを使用して、サービスとスコープのcgroup内のプロセスで使用できるCPU、I/O、メモリー、およびその他リソースを制限できます。「システム・リソースへのアクセスの制御」を参照してください。

詳細は、systemctl(1)およびsystemd-cgls(1)の各マニュアル・ページを参照してください。