mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-27 19:11:16 +00:00
- Use SIGUSR1, not SIGHUP, on reload. At present, virtlockd only responds to the former. - Fix PID file for virtlockd. - Do not start virtlockd in any runlevels by default. It needs to be explicitly selected in libvirt's qemu.conf anyway, so there is no need to have it running on all systems regardless. - Fix chkconfig priorities to ensure virtlockd is started before libvirtd is started, and stopped after libvirtd is stopped. - Add "Should-Start: virtlockd" to the libvirtd initscript's LSB header, for the same reason. - Add "Default-Stop" to both libvirtd and virtlockd initscripts. LSB does not guarantee that this defaults to the inverse of "Default-Start". Signed-off-by: Michael Chapman <mike@very.puzzling.org> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
126 lines
2.9 KiB
Bash
126 lines
2.9 KiB
Bash
#!/bin/sh
|
|
|
|
# the following is the LSB init header see
|
|
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
|
|
#
|
|
### BEGIN INIT INFO
|
|
# Provides: libvirtd
|
|
# Required-Start: $network messagebus
|
|
# Should-Start: $named
|
|
# Should-Start: xend
|
|
# Should-Start: avahi-daemon
|
|
# Should-Start: virtlockd
|
|
# Required-Stop: $network messagebus
|
|
# Should-Stop: $named
|
|
# Default-Start: 3 4 5
|
|
# Default-Stop: 0 1 2 6
|
|
# Short-Description: daemon for libvirt virtualization API
|
|
# Description: This is a daemon for managing guest instances
|
|
# and libvirt virtual networks
|
|
# See http://libvirt.org
|
|
### END INIT INFO
|
|
|
|
# the following is chkconfig init header
|
|
#
|
|
# libvirtd: guest and virtual network management daemon
|
|
#
|
|
# chkconfig: 345 97 03
|
|
# description: This is a daemon for managing guest instances \
|
|
# and libvirt virtual networks \
|
|
# See http://libvirt.org
|
|
#
|
|
# processname: libvirtd
|
|
# pidfile: @localstatedir@/run/libvirtd.pid
|
|
#
|
|
|
|
# Source function library.
|
|
. @sysconfdir@/rc.d/init.d/functions
|
|
|
|
SERVICE=libvirtd
|
|
PROCESS=libvirtd
|
|
PIDFILE=@localstatedir@/run/$SERVICE.pid
|
|
|
|
LIBVIRTD_CONFIG=
|
|
LIBVIRTD_ARGS=
|
|
KRB5_KTNAME=/etc/libvirt/krb5.tab
|
|
|
|
test -f @sysconfdir@/sysconfig/libvirtd && . @sysconfdir@/sysconfig/libvirtd
|
|
|
|
export QEMU_AUDIO_DRV
|
|
export SDL_AUDIODRIVER
|
|
|
|
LIBVIRTD_CONFIG_ARGS=
|
|
if [ -n "$LIBVIRTD_CONFIG" ]
|
|
then
|
|
LIBVIRTD_CONFIG_ARGS="--config $LIBVIRTD_CONFIG"
|
|
fi
|
|
|
|
RETVAL=0
|
|
|
|
start() {
|
|
echo -n $"Starting $SERVICE daemon: "
|
|
mkdir -p @localstatedir@/cache/libvirt
|
|
rm -rf @localstatedir@/cache/libvirt/*
|
|
|
|
# LIBVIRTD_NOFILES_LIMIT from /etc/sysconfig/libvirtd is not handled
|
|
# automatically
|
|
if [ -n "$LIBVIRTD_NOFILES_LIMIT" ]; then
|
|
ulimit -n "$LIBVIRTD_NOFILES_LIMIT"
|
|
fi
|
|
|
|
KRB5_KTNAME=$KRB5_KTNAME daemon --pidfile $PIDFILE --check $SERVICE $PROCESS --daemon $LIBVIRTD_CONFIG_ARGS $LIBVIRTD_ARGS
|
|
RETVAL=$?
|
|
echo
|
|
[ $RETVAL -eq 0 ] && touch @localstatedir@/lock/subsys/$SERVICE
|
|
}
|
|
|
|
stop() {
|
|
echo -n $"Stopping $SERVICE daemon: "
|
|
|
|
killproc -p $PIDFILE $PROCESS
|
|
RETVAL=$?
|
|
echo
|
|
if [ $RETVAL -eq 0 ]; then
|
|
rm -f @localstatedir@/lock/subsys/$SERVICE
|
|
rm -rf @localstatedir@/cache/libvirt/*
|
|
else
|
|
exit $RETVAL
|
|
fi
|
|
}
|
|
|
|
restart() {
|
|
stop
|
|
start
|
|
}
|
|
|
|
reload() {
|
|
echo -n $"Reloading $SERVICE configuration: "
|
|
|
|
killproc -p $PIDFILE $PROCESS -HUP
|
|
RETVAL=$?
|
|
echo
|
|
return $RETVAL
|
|
}
|
|
|
|
# See how we were called.
|
|
case "$1" in
|
|
start|stop|restart|reload)
|
|
$1
|
|
;;
|
|
status)
|
|
status -p $PIDFILE $PROCESS
|
|
RETVAL=$?
|
|
;;
|
|
force-reload)
|
|
reload
|
|
;;
|
|
condrestart|try-restart)
|
|
[ -f @localstatedir@/lock/subsys/$SERVICE ] && restart || :
|
|
;;
|
|
*)
|
|
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload|try-restart}"
|
|
exit 2
|
|
;;
|
|
esac
|
|
exit $RETVAL
|