110.2標準
legacy.serviceを停止してもlegacy.socketが待受け、接続時にserviceを再起動する。
待受けを今すぐ止め、boot時にも戻らないようにする。
適切な操作はどれか。
× 不正解
socket-activated serviceを無効化するにはactivation元の.socket unitを停止・disableする。必要に応じてservice unitも併せて処理する。
詳細解説
誤り
systemctl restart legacy.serviceserviceを再起動し、socket待受けを残す。
誤り。serviceをrestartするとexposureを継続し、socket activationも残る。
誤り
systemctl disable --now legacy.serviceservice側だけではlegacy.socketのactivation経路が残り得る。
誤り。serviceだけを停止・disableしてもactiveなsocketが接続を受けてserviceを再activationし得る。
正しい
systemctl disable --now legacy.socketsocketの待受けを停止し自動起動もdisableする。
正しい。legacy.socketを停止・disableし、listen endpointとそのactivation pathを閉じる。
誤り
systemctl reload legacy.socketsocket設定再読込で待受けを無効化しない。
誤り。reloadはsocketを停止せず、次回bootのenablementも変更しない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s
' 'legacy.socket listens -> connection activates legacy.service' 'disable --now socket -> stop activation path'期待される結果
legacy.socket listens -> connection activates legacy.service
disable --now socket -> stop activation path理解のポイント
- activation元を止める
- .socket unit
- serviceだけの停止では不足
確認時の注意
- 確認環境: systemd socket activation対応表
- 実socket unitは操作しない。
基礎のおさらい
trigger unit
socket、timer、path等のtriggerを含めてserviceの全activation pathを監査する。
両unitの処理
policyに応じてsocketに加えてserviceもdisable/maskし、意図しない直接startを防ぐ。
問題IDKP-110-867
確認環境systemd socket activation対応表
最終技術確認2026-08-13
誤り・権利侵害を報告