#! /bin/sh ### BEGIN INIT INFO # Provides: libvirt-suspendonreboot # Required-Start: libvirt-bin # Required-Stop: libvirt-bin $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: suspend/resmum vms on reboot ### END INIT INFO # (c) Andi Barth 2008 # Distributable under the terms of the GNU GPL version 2. # # copy to /etc/init.d/libvirt-suspendonreboot and use # update-rc.d libvirt-suspendonreboot defaults 29 71 # to enable PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin suspenddir=/var/lib/libvirt/autosuspend case "$1" in start) for domain in ${suspenddir}/*dump; do if [ -f $domain ]; then domain=$(basename $domain .dump) echo "resuming $domain ..." virsh restore ${suspenddir}/${domain}.dump && rm ${suspenddir}/${domain}.dump fi done ;; stop) for domain in /etc/libvirt/qemu/*xml; do domain=$(basename $domain .xml) state=$(virsh domstate $domain) if [ "$state" = "running" ]; then echo "suspending $domain ..." virsh save ${domain} ${suspenddir}/${domain}.dump fi done ;; reload|force-reload|restart) # No action, nothing to reload ;; *) echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 exit 1 esac