[Pkg-libvirt-maintainers] Bug#748841: libvirt-bin should start before dhcp (server or relay)
Thomas Drillich
th at drillich.com
Wed May 21 10:55:17 UTC 2014
Package: libvirt-bin
Version: 1.2.4-3
Severity: wishlist
Dear Maintainer,
The init script /etc/init.d/libvirt-bin should start before a dhcp server or relay,
cause it creates an ethernet-device.
/etc/init.d/libvirt-guests should start after dhcp, to get ips via device and dhcp.
*** Reporter, please consider answering these questions, where appropriate ***
* What led up to the situation?
* What exactly did you do (or not do) that was effective (or
ineffective)?
* What was the outcome of this action?
* What outcome did you expect instead?
*** End of the template - remove these template lines ***
-- System Information:
Debian Release: jessie/sid
APT prefers testing
APT policy: (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
armhf
Kernel: Linux 3.14.4-1.00-gb (SMP w/6 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libvirt-bin depends on:
ii adduser 3.113+nmu3
ii gettext-base 0.18.3.2-1
ii init-system-helpers 1.18
ii libapparmor1 2.8.0-5+b1
ii libaudit1 1:2.3.6-1
ii libavahi-client3 0.6.31-4
ii libavahi-common3 0.6.31-4
ii libblkid1 2.20.1-5.7
ii libc6 2.18-5
ii libcap-ng0 0.7.3-1+b1
ii libdbus-1-3 1.8.2-1
ii libdevmapper1.02.1 2:1.02.83-2
ii libfuse2 2.9.3-10
ii libgcrypt11 1.5.3-4
ii libgnutls26 2.12.23-15
ii libnetcf1 1:0.2.3-4
ii libnl-3-200 3.2.24-2
ii libnl-route-3-200 3.2.24-2
ii libnuma1 2.0.9~rc5-1
ii libparted0debian1 2.3-20
ii libpcap0.8 1.5.3-2
ii libpciaccess0 0.13.2-1
ii librados2 0.72.2-3
ii librbd1 0.72.2-3
ii libreadline6 6.3-6
ii libsasl2-2 2.1.26.dfsg1-9
ii libselinux1 2.3-1
ii libssh2-1 1.4.3-2
ii libsystemd-daemon0 204-8
ii libudev1 204-8
ii libvirt0 1.2.4-3
ii libxen-4.3 4.3.0-3+b1
ii libxenstore3.0 4.3.0-3+b1
ii libxml2 2.9.1+dfsg1-3
ii libyajl2 2.1.0-1
ii logrotate 3.8.7-1
Versions of packages libvirt-bin recommends:
ii bridge-utils 1.5-7
ii dmidecode 2.12-2
ii dnsmasq-base 2.69-1
ii ebtables 2.0.10.4-3
ii iproute 1:3.14.0-1
ii iptables 1.4.21-1
ii libxml2-utils 2.9.1+dfsg1-3
ii netcat-openbsd 1.105-7
ii parted 2.3-20
ii pm-utils 1.4.1-14
ii qemu 2.0.0+dfsg-4+b1
ii qemu-kvm 2.0.0+dfsg-4+b1
Versions of packages libvirt-bin suggests:
pn apparmor <none>
pn auditd <none>
ii policykit-1 0.105-5
pn radvd <none>
ii systemd 204-8
pn systemtap <none>
-- Configuration Files:
/etc/init.d/libvirt-bin changed:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export PATH
DAEMON=/usr/sbin/libvirtd
NAME=libvirtd
DESC="libvirt management daemon"
cgroups="cpuset cpu cpuacct devices freezer net_cls blkio perf_event"
! grep -qs cgroup_enable=memory /proc/cmdline || cgroups="$cgroups memory"
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
PIDFILE=/var/run/$NAME.pid
DODTIME=1 # Time to wait for the server to die, in seconds
if [ -f /etc/default/libvirt-bin ] ; then
. /etc/default/libvirt-bin
fi
check_start_libvirtd_option() {
if [ ! "$start_libvirtd" = "yes" ]; then
log_warning_msg "Not starting libvirt management daemon libvirtd, disabled via /etc/default/libvirt-bin"
return 1
else
return 0
fi
}
running_pid()
{
# Check if a given process pid's cmdline matches a given name
pid=$1
name=$2
[ -z "$pid" ] && return 1
[ ! -d /proc/$pid ] && return 1
cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1`
# Is this the expected child?
[ "$cmd" != "$name" ] && return 1
return 0
}
running()
{
# No pidfile, probably no daemon present
[ ! -f "$PIDFILE" ] && return 1
# Obtain the pid and check it against the binary name
pid=`cat $PIDFILE`
running_pid $pid $DAEMON || return 1
return 0
}
systemd_running()
{
if [ -d /run/systemd/system ] ; then
return 0
fi
return 1
}
mount_cgroups()
{
if ! systemd_running
then
mount -t tmpfs cgroup_root /sys/fs/cgroup || return 1
for M in $cgroups; do
mkdir /sys/fs/cgroup/$M || return 1
mount -t cgroup -o rw,nosuid,nodev,noexec,relatime,$M "cgroup_${M}" "/sys/fs/cgroup/${M}" || return 1
done
else
log_warning_msg "Systemd running, skipping cgroup mount."
fi
}
umount_cgroups()
{
if ! systemd_running
then
for M in $cgroups; do
umount "cgroup_${M}"
rmdir /sys/fs/cgroup/$M
done
umount cgroup_root
else
log_warning_msg "Systemd running, skipping cgroup mount."
fi
}
check_mount_cgroup_options() {
if [ ! "$mount_cgroups" = "yes" ]; then
return 1
else
return 0
fi
}
force_stop() {
[ ! -f "$PIDFILE" ] && return
if running ; then
kill -15 $pid
# Is it really dead?
[ -n "$DODTIME" ] && sleep "$DODTIME"s
if running ; then
kill -9 $pid
[ -n "$DODTIME" ] && sleep "$DODTIME"s
if running ; then
echo "Cannot kill $LABEL (pid=$pid)!"
exit 1
fi
fi
fi
rm -f $PIDFILE
return 0
}
case "$1" in
start)
if check_start_libvirtd_option; then
log_daemon_msg "Starting $DESC" "$NAME"
if running ; then
log_progress_msg "already running"
log_end_msg 0
exit 0
fi
rm -f /var/run/libvirtd.pid
if check_mount_cgroup_options; then
if ! mount_cgroups;then
log_warning_msg "Can not mount cgroups layout"
exit 1
fi
fi
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--exec $DAEMON -- -d $libvirtd_opts
if running; then
log_end_msg 0
else
log_end_msg 1
fi
fi
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
if ! running ; then
log_progress_msg "not running"
log_end_msg 0
exit 0
fi
if check_mount_cgroup_options; then
umount_cgroups
fi
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
--exec $DAEMON
log_end_msg 0
;;
force-stop)
log_daemon_msg "Forcefully stopping $DESC" "$NAME"
force_stop
if ! running; then
log_end_msg 0
else
log_end_msg 1
fi
;;
restart)
if check_start_libvirtd_option; then
log_daemon_msg "Restarting $DESC" "$DAEMON"
start-stop-daemon --oknodo --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
[ -n "$DODTIME" ] && sleep $DODTIME
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON -- -d $libvirtd_opts
if running; then
log_end_msg 0
else
log_end_msg 1
fi
fi
;;
reload|force-reload)
if running; then
log_daemon_msg "Reloading configuration of $DESC" "$NAME"
start-stop-daemon --stop --signal 1 --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
log_end_msg 0
else
log_warning_msg "libvirtd not running, doing nothing."
fi
;;
status)
log_daemon_msg "Checking status of $DESC" "$NAME"
if running ; then
log_progress_msg "running"
log_end_msg 0
else
log_progress_msg "not running"
log_end_msg 1
if [ -f "$PIDFILE" ] ; then
exit 1
else
exit 3
fi
fi
;;
*)
N=/etc/init.d/libvirt-bin
echo "Usage: $N {start|stop|restart|reload|force-reload|status|force-stop}" >&2
exit 1
;;
esac
exit 0
/etc/libvirt/qemu.conf [Errno 13] Keine Berechtigung: u'/etc/libvirt/qemu.conf'
/etc/libvirt/qemu/networks/default.xml [Errno 2] Datei oder Verzeichnis nicht gefunden: u'/etc/libvirt/qemu/networks/default.xml'
-- no debconf information
More information about the Pkg-libvirt-maintainers
mailing list