systemd socket activationにより待受中のsocket unitと、その後に起動されるserviceを一覧する。
unitは変更しない。
適切なコマンドはどれか。
systemctl list-socketsはsystemdが管理するsocket unitのlisten endpointとactivation先を表示し、serviceだけを停止しても残る待受けを発見できる。
詳細解説
systemctl list-servicessystemctlの標準的なsocket一覧subcommandではない。
誤り。service unitはlist-units --type=service等で確認し、list-servicesという標準subcommandではsocketを列挙できない。
systemctl list-socketssocket unit、LISTEN address、ACTIVATES等を一覧する。
正しい。list-socketsはsocket unit、LISTEN endpoint、ACTIVATES serviceを表示する。
systemctl socket-statussystemctlの標準subcommandではない。
誤り。個別unitにはstatusを使えるがsocket-statusという標準subcommandはない。
systemctl show-portsport一覧用の標準subcommandではない。
誤り。show-portsというsystemctl subcommandはなく、socket unitの一覧にならない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s
' 'systemctl list-sockets -> socket units, LISTEN endpoints, ACTIVATES services'期待される結果
systemctl list-sockets -> socket units, LISTEN endpoints, ACTIVATES services理解のポイント
- socket unitを監査
- LISTEN endpoint
- ACTIVATES先を確認
確認時の注意
- 確認環境: systemctl構文対応表
基礎のおさらい
socket activation
systemdが先にsocketをlistenし、接続時にserviceを起動できるためprocess不在でもportがopenに見える。
監査の組合せ
systemctl list-socketsとss/lsofを組み合わせ、unit policyとkernel socketの両方を確認する。