mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
init: add FreeBSD xencommons init script
This is a clone of the NetBSD xencommons init script with some minor modifications. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Cc: Ian Jackson <Ian.Jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
993ea0862e
commit
5dcdb2bf56
3 files changed
+165
No files matched your search
@@ -0,0 +1,43 @@
|
||||
XEN_ROOT = $(CURDIR)/../../..
|
||||
include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
# Xen script dir and scripts to go there.
|
||||
XEN_SCRIPTS =
|
||||
|
||||
XEN_SCRIPT_DATA =
|
||||
|
||||
XEN_RCD_PROG = rc.d/xencommons
|
||||
|
||||
.PHONY: all
|
||||
all:
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
|
||||
.PHONY: install
|
||||
install: all install-scripts install-rcd
|
||||
|
||||
.PHONY: install-scripts
|
||||
install-scripts:
|
||||
$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
|
||||
set -e; for i in $(XEN_SCRIPTS); \
|
||||
do \
|
||||
$(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
set -e; for i in $(XEN_SCRIPT_DATA); \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: install-rcd
|
||||
install-rcd:
|
||||
$(INSTALL_DIR) $(DESTDIR)$(CONFIG_DIR)/rc.d
|
||||
set -e; for i in $(XEN_RCD_PROG); \
|
||||
do \
|
||||
$(INSTALL_PROG) $$i $(DESTDIR)$(CONFIG_DIR)/rc.d; \
|
||||
sed -i '' 's,@xen_script_dir@,$(DESTDIR)$(XEN_SCRIPT_DIR),g' $(DESTDIR)$(CONFIG_DIR)/$$i; \
|
||||
done
|
||||
$(INSTALL_DATA) ../common/hotplugpath.sh $(DESTDIR)$(XEN_SCRIPT_DIR)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@@ -0,0 +1,121 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# PROVIDE: xencommons
|
||||
# REQUIRE: DAEMON
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
. @xen_script_dir@/hotplugpath.sh
|
||||
|
||||
LD_LIBRARY_PATH="${LIBDIR}"
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
name="xencommons"
|
||||
start_precmd="xen_precmd"
|
||||
start_cmd="xen_startcmd"
|
||||
stop_cmd="xen_stop"
|
||||
status_cmd="xen_status"
|
||||
extra_commands="status"
|
||||
required_files="/dev/xen/privcmd"
|
||||
|
||||
XENSTORED_PIDFILE="/var/run/xenstored.pid"
|
||||
XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid"
|
||||
#XENCONSOLED_TRACE="/var/log/xen/xenconsole-trace.log"
|
||||
#XENSTORED_TRACE="/var/log/xen/xenstore-trace.log"
|
||||
|
||||
xen_precmd()
|
||||
{
|
||||
mkdir -p /var/run/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 "Cleaning xenstore database.\n"
|
||||
if [ -z "${XENSTORED_ROOTDIR}" ]; then
|
||||
XENSTORED_ROOTDIR="/var/lib/xenstored"
|
||||
fi
|
||||
rm -f ${XENSTORED_ROOTDIR}/tdb* >/dev/null 2>&1
|
||||
printf "Starting xenservices: xenstored, xenconsoled."
|
||||
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}
|
||||
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 and domid.\n"
|
||||
${BINDIR}/xenstore-write "/local/domain/0/name" "Domain-0"
|
||||
${BINDIR}/xenstore-write "/local/domain/0/domid" 0
|
||||
}
|
||||
|
||||
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"
|
||||
@@ -4,6 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
SUBDIRS-y := common
|
||||
SUBDIRS-$(CONFIG_NetBSD) += NetBSD
|
||||
SUBDIRS-$(CONFIG_Linux) += Linux
|
||||
SUBDIRS-$(CONFIG_FreeBSD) += FreeBSD
|
||||
|
||||
.PHONY: all clean install
|
||||
all clean install: %: subdirs-%
|
||||