On 13/01/2019 18:27, Nick Williams wrote:
I’m working on a Docker container to run my PDNS Authoritative servers. I’m installing PDNS from repo.powerdns.com <http://repo.powerdns.com>. The Docker command that is run in `pdns_server`. The `docker stop` command sends a `SIGTERM` to PID 1, waits some amount of time, and then sends SIGKILL to force it to stop. It’s having to resort to SIGKILL, because `pdns_server` doesn’t respond to `SIGTERM`. What is the correct signal to tell PDNS to shut down?
The problem is not with pdns, it's with docker: strange things happen if you run the application as pid 1. For an explanation see: https://hackernoon.com/my-process-became-pid-1-and-now-signals-behave-strangely-b05c52cc551c

Solution: run a different pid 1 process whose job it is to launch the application, such as tini:

https://github.com/krallin/tini

With a modern version of docker, tini is included.  Just use the --init flag to docker run, and it should all be fine.

Regards,

Brian.

P.S. You can easily show that pdns is happy with a SIGTERM when you run it outside of docker.

root@ns2:~# ps auxwww | grep pdns
pdns      1612  0.0  0.7 677608  8064 ?        Ssl   2018  16:37 /usr/sbin/pdns_server --guardian=no --daemon=no --disable-syslog --write-pid=no root     25477  0.0  0.0  12944   968 pts/0    S+   20:24   0:00 grep --color=auto pdns
root@ns2:~# kill -TERM 1612
root@ns2:~# ps auxwww | grep pdns
root     25486  0.0  0.0  12944   940 pts/0    S+   20:24   0:00 grep --color=auto pdns
root@ns2:~#

This is pdns-server 4.0.6 under Ubuntu 16.04, with mysql backend.

_______________________________________________
Pdns-users mailing list
[email protected]
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to