This file is indexed.

/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