mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
The sysconfig variable XENSTORED_ROOTDIR is not used anymore.
It used to point to a directory with tdb files, which is now a tmpfs.
In case the database is not in tmpfs, like on sysv and BSD systems,
xenstored will truncate existing database files during start.
Fixes: 2ef6ace428 ("tools: don't remove tdb data base file before starting xenstored")
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Wei Liu <wl@xen.org>
119 lines
2.6 KiB
Bash
119 lines
2.6 KiB
Bash
#!/bin/sh
|
|
#
|
|
# PROVIDE: xencommons
|
|
# REQUIRE: DAEMON
|
|
|
|
. /etc/rc.subr
|
|
|
|
DIR=$(dirname "$0")
|
|
. "${DIR}/xen-hotplugpath.sh"
|
|
|
|
LD_LIBRARY_PATH="${libdir}"
|
|
export LD_LIBRARY_PATH
|
|
|
|
name="xencommons"
|
|
rcvar=xend
|
|
start_precmd="xen_precmd"
|
|
start_cmd="xen_startcmd"
|
|
stop_cmd="xen_stop"
|
|
status_cmd="xen_status"
|
|
extra_commands="status"
|
|
required_files="/kern/xen/privcmd"
|
|
|
|
XENCONSOLED_PIDFILE="@XEN_RUN_DIR@/xenconsoled.pid"
|
|
#XENCONSOLED_TRACE="none|guest|hv|all"
|
|
|
|
XENSTORED_PIDFILE="@XEN_RUN_DIR@/xenstored.pid"
|
|
#XENSTORED_TRACE="@XEN_LOG_DIR@/xenstore-trace.log"
|
|
|
|
xen_precmd()
|
|
{
|
|
mkdir -p @XEN_RUN_DIR@/xenstored || exit 1
|
|
}
|
|
|
|
xen_startcmd()
|
|
{
|
|
local time=0
|
|
local timeout=30
|
|
|
|
xenstored_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${sbindir}/xenstored)
|
|
if test -z "$xenstored_pid"; then
|
|
printf "Starting xenservices: xenstored, xenconsoled."
|
|
XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}"
|
|
if [ -n "${XENSTORED_TRACE}" ]; then
|
|
XENSTORED_ARGS="${XENSTORED_ARGS} -T @XEN_LOG_DIR@/xenstored-trace.log"
|
|
fi
|
|
${sbindir}/xenstored ${XENSTORED_ARGS}
|
|
while [ $time -lt $timeout ] && ! `${bindir}/xenstore-read -s / >/dev/null 2>&1` ; do
|
|
printf "."
|
|
time=$(($time+1))
|
|
sleep 1
|
|
done
|
|
else
|
|
printf "Starting xenservices: xenconsoled."
|
|
fi
|
|
|
|
XENCONSOLED_ARGS=""
|
|
if [ -n "${XENCONSOLED_TRACE}" ]; then
|
|
XENCONSOLED_ARGS="${XENCONSOLED_ARGS} --log=${XENCONSOLED_TRACE}"
|
|
fi
|
|
|
|
${sbindir}/xenconsoled ${XENCONSOLED_ARGS}
|
|
|
|
printf "\n"
|
|
|
|
printf "Setting domain 0 name, domid and JSON config...\n"
|
|
${LIBEXEC_BIN}/xen-init-dom0
|
|
}
|
|
|
|
xen_stop()
|
|
{
|
|
pids=""
|
|
printf "Stopping xencommons.\n"
|
|
printf "WARNING: Not stopping xenstored, as it cannot be restarted.\n"
|
|
|
|
rc_pid=$(check_pidfile ${XENCONSOLED_PIDFILE} ${sbindir}/xenconsoled)
|
|
pids="$pids $rc_pid"
|
|
|
|
kill -${sig_stop:-TERM} $pids
|
|
wait_for_pids $pids
|
|
}
|
|
|
|
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 -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"
|