In the past, I’ve always used KVM’s GUI to properly shut-down remote Virtual Machines when I needed to reboot the host and then re-launch them again after the reboot. Over time, this is a bit of a tiresome process, especially as the frequency of host reboots after security updates seems to increase. So at some point I thought that there must be an easier way to do this:
And indeed there is: To automatically shut-down all guest-VMs on a host when it reboots, adapt the following config file:
nano /etc/default/libvirt-guests # Change the following line: ON_SHUTDOWN=shutdown
No restart is required to activate the config change. According to the config file, there is a 120 seconds timeout to prevent a hanging VM blocking the host reboot.
And once the reboot is done, I can also automatically restart all VMs again by putting the ‘virsh start’ commands for all VMs in a batch file:
virsh start VM-NAME
And that’s it! A config change and a simple command save me a lot of time when rebooting hosts. Also, it lowers the psychological bar to host rebooting in the first place.