Systemd は停止時に Docker コンテナ内のサービスを停止します。

Systemd は停止時に Docker コンテナ内のサービスを停止します。

私はこのようなワンショットサービスを持っています

[Unit]
Description=My Service
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/myservice.sh start
ExecStop=/usr/local/bin/myservice.sh stop
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

私が実行しているDockerイメージには

STOPSIGNAL SIGRTMIN+3
ENTRYPOINT ["/sbin/init"]

コンテナを起動すると、サービスは期待どおりに開始されます。手動で実行するとsystemctl stop myservice期待どおりに動作しますが、 を実行するとdocker stop mycontainer停止が呼び出されません。これは停止信号の問題ですか、それともサービス構成の問題ですか?

答え1

サービスと信号は正しかったのですが、systemd-haltこれが機能するにはサービスが実行されている必要があります。

関連情報