/etc/init/libvirt-bin.conf is in libvirt-bin 1.2.2-0ubuntu13.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | description "libvirt daemon"
author "Dustin Kirkland <kirkland@canonical.com>"
start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]
expect daemon
respawn
# daemonize
env libvirtd_opts="-d"
# whether libvirtd should run at boot/shutdown
env start_libvirtd="yes"
# by default wait 30 seconds for vms to shut down
env libvirtd_shutdown_timeout=30
# uris for which to shut down vms
env libvirt_uris='qemu:///system lxc:///'
pre-start script
[ -r /etc/default/libvirt-bin ] && . /etc/default/libvirt-bin
[ ! "x$start_libvirtd" = "xyes" ] && { stop; exit 0; }
mkdir -p /var/run/libvirt
# Clean up a pidfile that might be left around
rm -f /var/run/libvirtd.pid
end script
pre-stop script
[ -r /etc/default/libvirt-bin ] && . /etc/default/libvirt-bin
log_msg()
{
logf="/var/log/libvirt/shutdownlog.log"
logger -p daemon.debug -s -t libvirt -- "$@" >> $logf 2>&1
}
run_virsh()
{
# We parse the output for things like domain state;
# make sure the output is in the language we expect.
LANG=C virsh "$@"
}
if [ -z "$RUNLEVEL" ]; then
exit 0
fi
if [ "$RUNLEVEL" -ne 0 ] && [ "$RUNLEVEL" -ne 1 ] && [ "$RUNLEVEL" -ne 6 ]; then
exit 0
fi
log_msg "libvirt-bin: entering pre-stop at $(date)"
for uri in $libvirt_uris; do
for domain in $(run_virsh -c "$uri" list | awk '$3 == "running" {print $2}'); do
log_msg "libvirt-bin: attempting clean shutdown of $domain at $(date)"
run_virsh -c "$uri" shutdown "$domain" >/dev/null
done
done
delay=$libvirtd_shutdown_timeout
while [ $delay -gt 0 ]; do
for uri in $libvirt_uris; do
if ! run_virsh -c "$uri" list | awk '$3 == "running" {exit 1}'; then
# VMs at this URI are still running. Wait, then
# start at the beginning looking for running VMs.
sleep 1
delay=$(($delay - 1))
continue 2
fi
done
break
done
for uri in $libvirt_uris; do
for domain in $(run_virsh -c "$uri" list | awk '$3 == "running" {print $2}'); do
log_msg "destroying $domain"
run_virsh -c "$uri" destroy "$domain" >/dev/null
done
done
log_msg "libvirt-bin: exiting pre-stop at $(date)"
end script
# /etc/default/libvirt-bin will be deprecated soon.
# If you used to set $libvirtd_opts in /etc/default/libvirt-bin,
# change the 'exec' line here instead.
script
[ -r /etc/default/libvirt-bin ] && . /etc/default/libvirt-bin
exec /usr/sbin/libvirtd $libvirtd_opts
end script
|