On Sun, Mar 09, 2008 at 08:59:24PM +0000, Daniel P. Berrange wrote: > Changes to the daemon to make it called qemudShutdown() broke the network > driver when run in --daemon mode. This is because the main daemon forks > into the background, and the original PID then exits destroying any active > networks & removing the iptables rules. [...] > Index: qemud/qemud.c > =================================================================== > RCS file: /data/cvs/libvirt/qemud/qemud.c,v > retrieving revision 1.89 > diff -u -r1.89 qemud.c > --- qemud/qemud.c 3 Mar 2008 18:10:19 -0000 1.89 > +++ qemud/qemud.c 9 Mar 2008 20:56:27 -0000 > @@ -393,7 +393,7 @@ > case -1: > return -1; > default: > - return nextpid; > + _exit(0); > } > > cleanup: > @@ -418,8 +418,7 @@ > status != 0) { > return -1; > } > - > - return pid; > + _exit(0); > } > } > } > @@ -2116,16 +2115,12 @@ > goto error1; > > if (godaemon) { > - int pid; > openlog("libvirtd", 0, 0); > - pid = qemudGoDaemon(); > - if (pid < 0) { > + if (qemudGoDaemon() < 0) { > qemudLog(QEMUD_ERR, _("Failed to fork as daemon: %s"), > strerror(errno)); > goto error1; > } > - if (pid > 0) > - goto out; > > /* Choose the name of the PID file. */ > if (!pid_file) { > @@ -2172,7 +2167,6 @@ > if (godaemon) > closelog(); > > - out: > ret = 0; > > error2: +1 to this patch. There's another problem I've noticed. If you start the daemon and TLS is enabled in the config and there is no /etc/pki directory, then the daemon exits with an error but doesn't clean up the bridge, meaning that next time you start the daemon the default network cannot be created. Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list