2ccc347bbb
on a single physical machine. The xentools46 package contains the tools to create, destroy and control the virtual machines. This package contains the tools for Xen 4.6.x
107 lines
2.3 KiB
Bash
107 lines
2.3 KiB
Bash
#!@RCD_SCRIPTS_SHELL@
|
|
#
|
|
# PROVIDE: xencommons
|
|
# REQUIRE: DAEMON
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="xencommons"
|
|
rcvar=$name
|
|
start_precmd="xen_precmd"
|
|
start_cmd="xen_startcmd"
|
|
stop_cmd="xen_stop"
|
|
status_cmd="xen_status"
|
|
extra_commands="status"
|
|
required_files="/kern/xen/privcmd"
|
|
|
|
XENSTORED_PIDFILE="/var/run/xenstored.pid"
|
|
XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid"
|
|
|
|
BINDIR=@PREFIX@/bin
|
|
SBINDIR=@PREFIX@/sbin
|
|
LIBEXEC_BIN=@PREFIX@/libexec/xen/bin
|
|
|
|
xen_precmd()
|
|
{
|
|
mkdir -p /var/run/xen || exit 1
|
|
mkdir -p /var/run/xenstored || exit 1
|
|
}
|
|
|
|
xen_startcmd()
|
|
{
|
|
printf "Starting xenservices: xenstored, xenconsoled.\n"
|
|
if test ! -r ${required_files}; then
|
|
warn "${required_files} is not readable."
|
|
fi
|
|
XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}"
|
|
if [ -n "${XENSTORED_TRACE}" ]; then
|
|
XENSTORED_ARGS="${XENSTORED_ARGS} -T /var/log/xen/xenstored-trace.log"
|
|
fi
|
|
|
|
${SBINDIR}/xenstored ${XENSTORED_ARGS}
|
|
sleep 5
|
|
|
|
printf "Setting domain 0 name, domid and JSON config...\n"
|
|
${LIBEXEC_BIN}/xen-init-dom0
|
|
|
|
XENCONSOLED_ARGS=""
|
|
if [ -n "${XENCONSOLED_TRACE}" ]; then
|
|
XENCONSOLED_ARGS="${XENCONSOLED_ARGS} --log=${XENCONSOLED_TRACE}"
|
|
fi
|
|
|
|
${SBINDIR}/xenconsoled ${XENCONSOLED_ARGS}
|
|
}
|
|
|
|
xen_stop()
|
|
{
|
|
pids=""
|
|
printf "Stopping xencommons"
|
|
|
|
rc_pid=$(check_pidfile ${XENCONSOLED_PIDFILE} ${SBINDIR}/xenconsoled)
|
|
pids="$pids $rc_pid"
|
|
rc_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${SBINDIR}/xenstored)
|
|
pids="$pids $rc_pid"
|
|
|
|
kill -${sig_stop:-TERM} $pids
|
|
wait_for_pids $pids
|
|
|
|
printf ".\n"
|
|
}
|
|
|
|
xen_status()
|
|
{
|
|
xenstored_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${SBINDIR}/xenstored)
|
|
if test -n ${xenstored_pid}; then
|
|
pids="$pids $xenstored_pid"
|
|
fi
|
|
|
|
xenconsoled_pid=$(check_pidfile ${XENCONSOLED_PIDFILE} ${SBINDIR}/xenconsoled)
|
|
if test -n ${xenconsoled_pid}; then
|
|
pids="$pids $xenconsoled_pid"
|
|
fi
|
|
|
|
if test -n "$xenconsoled_pid" -a -n "$xenstored_pid";
|
|
then
|
|
echo "xencommons are running as pids $pids."
|
|
return 0
|
|
fi
|
|
if test -a -z "$xenconsoled_pid" -a -z "$xenstored_pid";
|
|
then
|
|
echo "xencommons are not running."
|
|
return 0
|
|
fi
|
|
|
|
if test -n "$xenstored_pid"; then
|
|
echo "xenstored is running as pid $xenstored_pid."
|
|
else
|
|
echo "xenstored is not running."
|
|
fi
|
|
if test -n "$xenconsoled_pid"; then
|
|
echo "xenconsoled is running as pid $xenconsoled_pid."
|
|
else
|
|
echo "xenconsoled is not running."
|
|
fi
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|