The libvirt daemon has the ability to reload itself by sending it SIGHUP. For the QEMU & network drivers this makes it reload the config files for VMs and re-init the iptables rules. It would be desirable though to allow the daemon to perform a full restart. Principally this is for RPM upgrades where you want toensure the daemon is running the new code. The tricky thing is figuring out how to handle driver state. Looking at the QEMU, network, storage and LXC drivers, there is not actually all that much state to deal with. It basically comes down to: - PID of child processes (eg QEMU, dnsmasq, container) - FDs for STDIN/OUT/ERR of the child processes - A possible logfile FD - Flag to indicate whether some objects are active or not That is more or less it. Anything else is kept in the config files and can be reloaded at will. So I was thinking about whether we could provide a simple protocol to allow each stateful driver to save its state into some location, the daemon could just 'exec()' itself again, and upon startup the drivers reload their active state. Since the daemon just exec()'s itself it would still own the child processes & still have all the neccessary FD's open. Dan. -- |: Red Hat, Engineering, Boston -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list