У меня есть одноразовая услуга, которая выглядит так
[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
, stop не вызывается. Это проблема сигнала stop или проблема конфигурации службы?
решение1
Служба и сигнал были правильными, но systemd-halt
для работы эта служба должна быть запущена.