-force-reload()
-{
- restart
+ stop
+ sleep 1
+ start
}
-
diff --git a/utils/xen/init.d/xend.conf b/utils/xen/init.d/xend.conf
new file mode 100644
index 0000000..69d8dcb
--- /dev/null
+++ b/utils/xen/init.d/xend.conf
@@ -0,0 +1,8 @@
+# Log xenconsoled messages (cf xl dmesg): [none|guest|hv|all]
+#XENCONSOLED_TRACE=
+
+# Log xenstored messages: [yes|on|1]
+#XENSTORED_TRACE=
+
+# Running xenstored on XENSTORED_ROOTDIR
+XENSTORED_ROOTDIR=/var/lib/xenstored
diff --git a/utils/xen/init.d/xendomains b/utils/xen/init.d/xendomains
new file mode 100755
index 0000000..75cc264
--- /dev/null
+++ b/utils/xen/init.d/xendomains
@@ -0,0 +1,133 @@
+#!/bin/bash
+
+. /etc/sysconfig/xendomains
+
+PROGRAM=/bin/false
+RUNLEVEL=3
+NEEDS="+xend"
+
+. /etc/init.d/smgl_init
+
+function check_userland()
+{
+ echo "XEN: Checking userland environment..."
+
+ required_executable /usr/sbin/xm
+ CMD=xm
+
+ $CMD list &> /dev/null
+ if test $? -ne 0; then
+ required_executable /usr/sbin/xl
+ CMD=xl
+ fi
+
+ $CMD list &> /dev/null
+ if test $? -ne 0; then
+ print_status failure
+ exit 1
+ fi
+
+ # Correct exit code would probably be 5, but it's enough
+ # if xend complains if we're not running as privileged domain
+ if ! [ -e /proc/xen/privcmd ]; then
+ print_status failure
+ exit 1
+ fi
+
+ # See docs/misc/distro_mapping.txt
+ if [ -d /var/lock/subsys ]; then
+ LOCKFILE=/var/lock/subsys/xendomains
+ else
+ LOCKFILE=/var/lock/xendomains
+ fi
+
+ print_status success
+}
+
+function get_domname()
+{
+ local name_from_file=$(sed -rn
's/^name\W*=\W*\"?([[:alnum:]_\.-]+)\"?\W*;?/\1/p' "${1}" | tail -n 1)
+
+ if [[ -z ${name_from_file} ]] ; then
+ basename "${1}"
+ else
+ echo ${name_from_file}
+ fi
+}
+
+function is_running()
+{
+ $CMD list "${1}" >/dev/null 2>&1
+}
+
+start()
+{
+ check_userland
+
+ if [ -f $LOCKFILE ]; then
+ echo -e "XEN: xendomains already running (lockfile exists)"
+ exit 0
+ fi
+
+ if [ $(ls ${XENDOMAINS_AUTO} | wc -l) == 0 ]; then
+ echo "XEN: no domains in ${XENDOMAINS_AUTO}"
+ exit 0
+ fi
+
+ touch $LOCKFILE
+ echo "XEN: Starting domains:"
+ for dom in $(ls "${XENDOMAINS_AUTO}/"* 2>/dev/null | sort); do
+ name=$(get_domname ${dom})
+ echo "XEN: domain ${name}... "
+ if ! is_running ${name}; then
+ $CMD create --quiet --defconfig $dom
+ evaluate_retval
+ else
+ echo -n "(skip: already running)"
+ fi
+ done
+}
+
+stop()
+{
+ check_userland
+
+ if [ $(ls ${XENDOMAINS_AUTO} | wc -l) == 0 ]; then
+ echo "XEN: no domains in ${XENDOMAINS_AUTO}"
+ exit 0
+ fi
+
+ DOMAINS="$(ls "${XENDOMAINS_AUTO}/"* 2>/dev/null | sort -r)"
+
+ echo "XEN: Shutting down domains:"
+ for dom in $DOMAINS; do
+ name=$(get_domname ${dom})
+ echo "XEN: Waiting for domain ${name} to shutdown... "
+ if is_running ${name}; then
+ $CMD shutdown -w ${name} > /dev/null
+ evaluate_retval
+ else
+ echo -n "(skip: not running)"
+ fi
+ done
+
+ rm -f $LOCKFILE
+}
+
+status()
+{
+ check_userland
+
+ $CMD list
+}
+
+restart()
+{
+ stop
+ start
+}
+
+reload()
+{
+ restart
+}
diff --git a/utils/xen/init.d/xendomains.conf
b/utils/xen/init.d/xendomains.conf
new file mode 100644
index 0000000..27d12cc
--- /dev/null
+++ b/utils/xen/init.d/xendomains.conf
@@ -0,0 +1,136 @@
+## Path: System/xen
+## Description: xen domain start/stop on boot
+## Type: string
+## Default:
+#
+# The xendomains script can send SysRq requests to domains on shutdown.
+# If you don't want to MIGRATE, SAVE, or SHUTDOWN, this may be a possibility
+# to do a quick and dirty shutdown ("s e i u o") or at least sync the disks
+# of the domains ("s").
+#
+XENDOMAINS_SYSRQ=""
+
+## Type: integer
+## Default: 100000
+#
+# If XENDOMAINS_SYSRQ is set, this variable determines how long to wait
+# (in microseconds) after each SysRq, so the domain has a chance to react.
+# If you want to a quick'n'dirty shutdown via SysRq, you may want to set
+# it to a relatively high value (1200000).
+#
+XENDOMAINS_USLEEP=100000
+
+## Type: integer
+## Default: 5000000
+#
+# When creating a guest domain, it is sensible to allow a little time for it
+# to get started before creating another domain or proceeding through the
+# boot process. Without this, the booting guests will thrash the disk as
they
+# start up. This timeout (in microseconds) specifies the delay after guest
+# domain creation.
+#
+XENDOMAINS_CREATE_USLEEP=5000000
+
+## Type: string
+## Default: ""
+#
+# Set this to a non-empty string if you want to migrate virtual machines
+# on shutdown. The string will be passed to the xm migrate DOMID command
+# as is: It should contain the target IP address of the physical machine
+# to migrate to and optionally parameters like --live. Leave empty if
+# you don't want to try virtual machine relocation on shutdown.
+# If migration succeeds, neither SAVE nor SHUTDOWN will be executed for
+# that domain.
+#
+XENDOMAINS_MIGRATE=""
+
+## Type: string
+## Default: /var/lib/xen/save
+#
+# Directory to save running domains to when the system (dom0) is
+# shut down. Will also be used to restore domains from if #
XENDOMAINS_RESTORE
+# is set (see below). Leave empty to disable domain saving on shutdown
+# (e.g. because you rather shut domains down).
+# If domain saving does succeed, SHUTDOWN will not be executed.
+#
+XENDOMAINS_SAVE=/var/lib/xen/save
+
+## Type: string
+## Default: "--halt --wait"
+#
+# If neither MIGRATE nor SAVE were enabled or if they failed, you can
+# try to shut down a domain by sending it a shutdown request. To do this,
+# set this to "--halt --wait". Omit the "--wait" flag to avoid waiting
+# for the domain to be really down. Leave empty to skip domain shutdown.
+#
+XENDOMAINS_SHUTDOWN="--halt --wait"
+
+## Type: string
+## Default: "--all --halt --wait"
+#
+# After we have gone over all virtual machines (resp. all automatically
+# started ones, see XENDOMAINS_AUTO_ONLY below) in a loop and sent SysRq,
+# migrated, saved and/or shutdown according to the settings above, we
+# might want to shutdown the virtual machines that are still running
+# for some reason or another. To do this, set this variable to
+# "--all --halt --wait", it will be passed to xm shutdown.
+# Leave it empty not to do anything special here.
+# (Note: This will hit all virtual machines, even if XENDOMAINS_AUTO_ONLY
+# is set.)
+#
+XENDOMAINS_SHUTDOWN_ALL="--all --halt --wait"
+
+## Type: boolean
+## Default: true
+#
+# This variable determines whether saved domains from XENDOMAINS_SAVE
+# will be restored on system startup.
+#
+XENDOMAINS_RESTORE=true
+
+## Type: string
+## Default: /etc/xen/auto
+#
+# This variable sets the directory where domains configurations
+# are stored that should be started on system startup automatically.
+# Leave empty if you don't want to start domains automatically
+# (or just don't place any xen domain config files in that dir).
+# Note that the script tries to be clever if both RESTORE and AUTO are
+# set: It will first restore saved domains and then only start domains
+# in AUTO which are not running yet.
+# Note that the name matching is somewhat fuzzy.
+#
+XENDOMAINS_AUTO=/etc/xen/auto
+
+## Type: boolean
+## Default: false
+#
+# If this variable is set to "true", only the domains started via config
+# files in XENDOMAINS_AUTO will be treated according to XENDOMAINS_SYSRQ,
+# XENDOMAINS_MIGRATE, XENDOMAINS_SAVE, XENDMAINS_SHUTDOWN; otherwise
+# all running domains will be.
+# Note that the name matching is somewhat fuzzy.
+#
+XENDOMAINS_AUTO_ONLY=false
+
+## Type: integer
+## Default: 300
+#
+# On xendomains stop, a number of xm commands (xm migrate, save, shutdown,
+# shutdown --all) may be executed. In the worst case, these commands may
+# stall forever, which will prevent a successful shutdown of the machine.
+# If this variable is non-zero, the script will set up a watchdog timer
+# for every of these xm commands and time it out after the number of seconds
+# specified by this variable.
+# Note that SHUTDOWN_ALL will not be called if no virtual machines or only
+# zombies are still running, so you don't need to enable this timeout just
+# for the zombie case.
+# The setting should be large enough to make sure that migrate/save/shutdown
+# can succeed. If you do live migrations, keep in mind that live migration
+# of a 1GB machine over Gigabit ethernet may actually take something like
+# 100s (assuming that live migration uses 10% of the network # bandwidth).
+# Depending on the virtual machine, a shutdown may also require a significant
+# amount of time. So better setup this variable to a huge number and hope the
+# watchdog never fires.
+#
+XENDOMAINS_STOP_MAXWAIT=300
[SM-Commit] GIT changes to master grimoire by Vlad Glagolev (07f21a0c0b926fec15643bbb0afd9e4dda82568f),
Vlad Glagolev, 02/16/2012