2.4.2. コントロールグループ階層の表示
前述の一覧表示コマンドは、ユニットレベルを超えて cgroup で実行されている実際のプロセスを表示するものではありません。また、systemctl の出力には、ユニットの階層が表示されません。cgroup に従って実行中のプロセスをグループ化する systemd-cgls コマンドを使用することで、両方を実現できます。システムの cgroup 階層全体を表示するには、次のように入力します。
~]$ systemd-cgls
パラメーターなしで systemd-cgls を発行すると、cgroup 階層全体が返されます。cgroup ツリーの最上位レベルはスライスによって形成され、次のようになります。
├─system │ ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 20 │ ... │ ├─user │ ├─user-1000 │ │ └─ ... │ ├─user-2000 │ │ └─ ... │ ... │ └─machine ├─machine-1000 │ └─ ... ...
マシンスライスは、仮想マシンまたはコンテナーを実行している場合にのみ存在することに注意してください。cgroup ツリーの詳細については、次を参照してください。「systemd ユニットタイプ」 .
systemd-cgls の出力を減らし、階層の指定された部分を表示するには、次を実行します。
~]$ systemd-cgls name
name を、検査するリソースコントローラーの 名前 に置き換えます。
別の方法として、systemctl status コマンドを使用して、システムユニットに関する詳細情報を表示します。cgroup サブツリーは、このコマンドの出力の一部です。
~]$ systemctl name
例2.9 コントロールグループ階層の表示
メモリー
リソースコントローラーの cgroup ツリーを表示するには、次のコマンドを実行します。
~]$ systemd-cgls memory
memory:
├─ 1 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
├─ 475 /usr/lib/systemd/systemd-journald
...
上記のコマンドの出力例では、選択したコントローラーと対話するサービスの一覧を表示します。別のアプローチは、特定のサービス、スライス、またはスコープユニットの cgroup ツリーの一部を表示することです。
~]# systemctlstatus
httpd.service
httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled) Active: active (running) since Sun 2014-03-23 08:01:14 MDT; 33min ago Process: 3385 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS) Main PID: 1205 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─1205 /usr/sbin/httpd -DFOREGROUND ├─3387 /usr/sbin/httpd -DFOREGROUND ├─3388 /usr/sbin/httpd -DFOREGROUND ├─3389 /usr/sbin/httpd -DFOREGROUND ├─3390 /usr/sbin/httpd -DFOREGROUND └─3391 /usr/sbin/httpd -DFOREGROUND ...
前述のツールに加えて、systemd は Linux コンテナーの監視専用の machinectl コマンドも提供します。