[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 10/17] 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@xxxxxxxxxx> Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> --- tools/hotplug/FreeBSD/Makefile | 43 ++++++++++++ tools/hotplug/FreeBSD/rc.d/xencommons | 121 +++++++++++++++++++++++++++++++++ tools/hotplug/Makefile | 1 + 3 files changed, 165 insertions(+), 0 deletions(-) create mode 100644 tools/hotplug/FreeBSD/Makefile create mode 100644 tools/hotplug/FreeBSD/rc.d/xencommons diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile new file mode 100644 index 0000000..c7ffc51 --- /dev/null +++ b/tools/hotplug/FreeBSD/Makefile @@ -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: diff --git a/tools/hotplug/FreeBSD/rc.d/xencommons b/tools/hotplug/FreeBSD/rc.d/xencommons new file mode 100644 index 0000000..a797016 --- /dev/null +++ b/tools/hotplug/FreeBSD/rc.d/xencommons @@ -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" diff --git a/tools/hotplug/Makefile b/tools/hotplug/Makefile index f147b59..14ae9a8 100644 --- a/tools/hotplug/Makefile +++ b/tools/hotplug/Makefile @@ -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-% -- 1.7.7.5 (Apple Git-26) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |