次のワンタイムサービスがあります。
[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
私が実行しているドッカー画像に
STOPSIGNAL SIGRTMIN+3
ENTRYPOINT ["/sbin/init"]
コンテナを起動すると、サービスは期待どおりに開始されます。手動で実行するとsystemctl stop myservice
期待どおりに機能しますが、実行するとdocker stop mycontainer
stop は呼び出されません。停止信号の問題ですか、それともサービス構成の問題ですか?
答え1
サービスとシグナルは正確ですが、systemd-halt
正常に機能するにはサービスが実行されている必要があります。