2013-09-26 17:14:40 +02:00

102 lines
1.9 KiB
Bash

#!@RCD_SCRIPTS_SHELL@
#
# PROVIDE: xend
# REQUIRE: xencommons
. /etc/rc.subr
name="xend"
rcvar=$name
command_interpreter="@RCD_INTERPRETER@"
start_precmd="xen_precmd"
start_cmd="xen_startcmd"
stop_cmd="xen_stop"
status_cmd="xen_status"
extra_commands="status"
required_files="/kern/xen/privcmd"
XENBACKENDD_PIDFILE="/var/run/xenbackendd.pid"
XEND_PIDFILE="/var/run/xend.pid"
SBINDIR=@PREFIX@/sbin
xen_precmd()
{
mkdir -p /var/run/xend/boot || exit 1
}
xen_startcmd()
{
printf "Starting xendservices: xenbackendd, xend.\n"
XENBACKENDD_ARGS=""
if [ -n "${XENBACKENDD_DEBUG}" ]; then
XENBACKENDD_ARGS="${XENBACKENDD_ARGS} -d"
fi
${SBINDIR}/xenbackendd ${XENBACKENDD_ARGS}
XEND_ARGS=""
if [ -n "${XEND_DEBUG}" ]; then
XEND_ARGS="${XEND_ARGS} trace_start"
else
XEND_ARGS="${XEND_ARGS} start"
fi
${SBINDIR}/xend ${XEND_ARGS}
}
xen_stop()
{
pids=""
printf "Stopping xendservices"
${SBINDIR}/xend stop
rc_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} ${SBINDIR}/xenbackendd)
pids="$pids $rc_pid"
kill -${sig_stop:-TERM} $pids
wait_for_pids $pids
printf ".\n"
}
xen_status()
{
xenbackendd_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} ${SBINDIR}/xenbackendd)
if test -n ${xenbackend_pid}; then
pids="$pids $xenbackend_pid"
fi
xend_pid=$(check_pidfile ${XEND_PIDFILE} ${SBINDIR}/xend)
if test -n ${xend_pid}; then
pids="$pids $xenbackend_pid"
fi
if test -n "$xend_pid" -a -n "$xenbackendd_pid";
then
echo "xends are running as pids $pids."
return 0
fi
if test -z "$xend_pid" -a -z "$xenbackendd_pid";
then
echo "xends are not running."
return 0
fi
if test -n "$xenbackend_pid"; then
echo "xenbackendd is running as pid $xenbackend_pid."
else
echo "xenbackendd is not running."
fi
if test -n "$xend_pid"; then
echo "xend is running as pid $xend_pid."
else
echo "xend is not running."
fi
}
load_rc_config $name
run_rc_command "$1"