Index: sysutils/xen-tools/Makefile =================================================================== --- sysutils/xen-tools/Makefile +++ sysutils/xen-tools/Makefile @@ -22,6 +22,7 @@ RUN_DEPENDS= seabios>0:misc/seabios DOCS_BUILD_DEPENDS=markdown:textproc/markdown +USE_RC_SUBR= xendomains OPTIONS_DEFINE= DOCS SPICE OPTIONS_DEFAULT= DOCS OPTIONS_SUB= yes Index: sysutils/xen-tools/files/xendomains.in =================================================================== --- sysutils/xen-tools/files/xendomains.in +++ sysutils/xen-tools/files/xendomains.in @@ -0,0 +1,53 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: xendomains +# REQUIRE: FILESYSTEMS + +. /etc/rc.subr + +name="xendomains" +desc="Manage Xen Domains" +rcvar="xendomains_enable" + +start_cmd="xendomains_start" +stop_cmd="xendomains_stop" +status_cmd="xendomains_status" +extra_commands="status" +: ${xendomains_cmd:="%%PREFIX%%/sbin/xl}" +: ${xendomains_dir:="%%PREFIX%%/etc/xen/auto}" + +xendomains_status() +{ + ${xendomains_cmd} list | awk ' + (FNR <= 2) { next } + ($5 !~ /s/) { s = s " " $1 } + END { sub(" *", "", s); print s }' +} + +xendomains_start() +{ + echo 'Starting Xen Domains' + for domain in ${xendomains_dir}/* ; do + ${xendomains_cmd} create ${domain} + done +} + +xendomains_stop() +{ + echo 'Stopping Xen Domains' + + ${xendomains_cmd} list | awk ' + (FNR <= 2) { next } + ($5 !~ /s/) { s = s " " $1 } + END { sub(" *", "", s); print s }' | tr ' ' '\n' | \ + while read domain ; do + echo Stopping Xen domain $domain + ${xendomains_cmd} shutdown -F ${domain} + done +} + +load_rc_config $name +run_rc_command "$1"