Olaf Hering
9447c10200
fix insserv xend OBS-URL: https://build.opensuse.org/request/show/88705 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=150
137 lines
2.2 KiB
Bash
137 lines
2.2 KiB
Bash
#!/bin/bash
|
|
#
|
|
# xend Starts and stops the Xen management daemon
|
|
#
|
|
# chkconfig: 35 98 01
|
|
# description: Starts and stops the Xen management daemon
|
|
#
|
|
### BEGIN INIT INFO
|
|
# Provides: xend
|
|
# Required-Start: $syslog $remote_fs
|
|
# Should-Start: iscsi $time
|
|
# Required-Stop: $syslog $remote_fs
|
|
# Should-Stop: iscsi $time
|
|
# Default-Start: 3 5
|
|
# Default-Stop: 0 1 2 6
|
|
# Short-Description: Starts and stops the Xen management daemon
|
|
# Description: Starts and stops the Xen management daemon. xend is needed
|
|
# to create and manage VMs on Xen.
|
|
### END INIT INFO
|
|
|
|
. /etc/rc.status
|
|
rc_reset
|
|
|
|
XEND=`pidof -x /usr/sbin/xend`
|
|
|
|
await_daemons_up()
|
|
{
|
|
i=1
|
|
rets=10
|
|
xend status
|
|
while [ $? -ne 0 -a $i -lt $rets ]; do
|
|
sleep 1
|
|
echo -n .
|
|
i=$(($i + 1))
|
|
xend status
|
|
done
|
|
}
|
|
|
|
xend_abort()
|
|
{
|
|
echo -n "xend "
|
|
rc_failed $1
|
|
rc_status -v
|
|
rc_exit
|
|
}
|
|
|
|
cleanup()
|
|
{
|
|
rm -f /var/lib/xen/tmp/* 2>/dev/null
|
|
rm -f /var/lib/xen/xenbl* 2>/dev/null
|
|
}
|
|
|
|
check()
|
|
{
|
|
if [ "$1" == status ]; then
|
|
if [ ! -e /proc/xen/capabilities ]; then
|
|
xend_abort 3
|
|
fi
|
|
else
|
|
if [ `id -u` != 0 ]; then
|
|
xend_abort 4
|
|
fi
|
|
if [ ! -e /proc/xen/capabilities ] ||
|
|
! grep control_d /proc/xen/capabilities >/dev/null 2>&1; then
|
|
if [ "$1" == stop ] ||
|
|
[ "$1" == try-restart ]; then
|
|
xend_abort 0
|
|
else
|
|
xend_abort 6
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
check $1
|
|
echo -n "Starting xend "
|
|
if [ ! -z "$XEND" ]; then
|
|
echo -n "(already running pid $XEND) "
|
|
else
|
|
cleanup
|
|
fi
|
|
xend start
|
|
await_daemons_up
|
|
;;
|
|
stop)
|
|
check $1
|
|
echo -n "Stopping xend "
|
|
if [ -z "$XEND" ]; then
|
|
echo -n "(not running) "
|
|
xend stop
|
|
rc_reset
|
|
else
|
|
echo -n "(pid $XEND) "
|
|
xend stop
|
|
cleanup
|
|
rc_reset
|
|
fi
|
|
;;
|
|
status)
|
|
check $1
|
|
echo -n "Checking status of xend "
|
|
if [ ! -z "$XEND" ]; then
|
|
echo -n "(pid $XEND) "
|
|
fi
|
|
checkproc /usr/sbin/xend
|
|
;;
|
|
restart|reload)
|
|
check $1
|
|
echo -n "Restarting xend "
|
|
if [ -z "$XEND" ]; then
|
|
echo -n "(not running) "
|
|
else
|
|
echo -n "(old pid $XEND) "
|
|
fi
|
|
xend restart
|
|
await_daemons_up
|
|
;;
|
|
try-restart)
|
|
check $1
|
|
$0 status
|
|
if [ $? = 0 ]; then
|
|
$0 restart
|
|
else
|
|
rc_reset
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart|try-restart|reload|status}"
|
|
rc_failed 2
|
|
rc_exit
|
|
esac
|
|
|
|
rc_status -v
|
|
rc_exit
|