[libvirt] libvirt/dnsmasq integration.

Simon Kelley simon at thekelleys.org.uk
Mon Mar 1 13:57:20 UTC 2010

Daniel P. Berrange wrote:
> On Wed, Feb 24, 2010 at 04:37:04PM +0000, Simon Kelley wrote:
>> Richard W.M. Jones wrote:
>>> On Wed, Feb 24, 2010 at 02:34:53PM +0000, Simon Kelley wrote:
>>> [...]
>>>> Does that make sense? It's a long and involved explanation to come to  
>>>> cold. I fear I may have over-simplified what libvirt is doing with  
>>>> dnsmasq, in which case please enlighten me and I'll modify my scheme to  
>>>> take that into account. If this looks good I can easily have the  
>>>> necessary dnsmasq changes in the next release.
>>> I read through it and it makes sense to me.
>>> The only thing: is /etc/dnsmasq.d a true standard across all distros?
>>> It is for Fedora, but an old Debian distro I use does not have this
>>> directory.
>> The ability to read config fragments from a directory has been in
>> dnsmasq since version 2.32 (effectively, forever). The Debian (and by
>> inheritance, Ubuntu) packages have created and automatically searched
>> /etc/dnsmasq.d since 2.46, released in November 2008. That's not quite
>> old enough to be in the current Debian stable, which has 2.45.
>> All this is slighly moot, since this scheme needs changes to dnsmasq.
>> Those can easily go into the next release.
>>> Is '/etc/init.d/dnsmasq restart' a reliable way to restart the system
>>> dnsmasq across all distros?  (Perhaps 'service dnsmasq restart' is
>>> better?).
>> Almost certainly. Could this be a hook supplied by the distro packaging?
> I'm not sure that the 'service' command is standardized on all distros
> either, is it ? 

I don't know. It exists on recent Debian and Ubuntu versions.
> Does dnsmasq need a full restart, or is a SIGHUP sufficient ?

A full restart: Once running it has dropped root, and some configuration
changes need root to establish. There's a subset of the configuration
that can be put in special files and reloaded by SIGHUP.
> If the latter, then we could avoid the initscript entirely, by reading
> dnsmasq's pid file, using kill(0, $PID) and check for -ERSCH to see if it
> is running or not.  Then finally SIGHUP it to reload

More information about the libvir-list mailing list