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:
Roger Pau Monne authored and Ian Campbell committed 2014-06-18 17:18:56 +01:00
1 parent 993ea0862e
commit 5dcdb2bf56
3 files changed
+165

No files matched your search

+43
View File
@@ -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:
+121
View File
@@ -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"
+1
View File
@@ -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-%
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.