Eu tenho um serviço oneshot parecido com este
[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
A imagem docker que estou executando tem
STOPSIGNAL SIGRTMIN+3
ENTRYPOINT ["/sbin/init"]
O serviço é iniciado conforme esperado quando inicio o contêiner. Se eu executar manualmente systemctl stop myservice
ele funciona como esperado, mas quando executo docker stop mycontainer
, o stop não é chamado. Este é um problema de sinal de parada ou de configuração de serviço?
Responder1
O serviço e o sinal estavam corretos, mas systemd-halt
o serviço deve estar em execução para que funcione.