Hi List!

Let me tell you about a little scenario.
dhcpcd starts, calls resolvconf
resolvconf then updates it's files and runs it's plugins -  libc (nscd), 
dnsmasq and bind which restart via their init script if required.
Each service (nscd, dnsmasq and bind) can be stopped and started easily.

Now, when dhcpcd receives a stop signal it runs resolvconf again, which it 
should by design. Quite happily it runs he plugins and restarts dnsmasq, bind 
and/or nscd so that the interface that dhcpcd handled doesn't publish its dns 
information anymore. 

However - if dhcpcd was stopped by a SIGTERM then the restarted services do 
get restarted and it seems to work, but the services (nscd, dnsmasq, bind) 
are unresponsive and can only be killed by a SIGKILL. Not good.

Every other signal that causes a "stop" (SIGINT, SIGQUIT, etc) that can be 
trapped works just fine and services continue as they are.

So why am I writing this email? Well, start-stop-daemon, by default, uses 
SIGTERM. Another example of this was my new openvpn scripts calling 
resolvconf when openvpn stopped causing the same behaviour as dhcpcd as 
described above.

As more and more init scripts "stopping" can trigger other services to 
restart, it becomes very desirable for this not to happen. So I propose for 
the next baselayout release (1.12.0_pre17) to default start-stop-daemon calls 
to SIGINT for stop commands instead of the current SIGTERM. My testing on my 
boxes has no adverse effects so far.

So ...... thoughts? Good or bad idea? Reasons and explanations welcome :)

-- 
Roy Marples <[EMAIL PROTECTED]>
Gentoo Linux Developer
-- 
gentoo-dev@gentoo.org mailing list

Reply via email to