mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
155 lines
2.8 KiB
Bash
Executable File
155 lines
2.8 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# /etc/init.d/xendomains
|
|
# Start / stop domains automatically when domain 0 boots / shuts down.
|
|
#
|
|
# chkconfig: 345 99 00
|
|
# description: Start / stop Xen domains.
|
|
#
|
|
# This script offers fairly basic functionality. It should work on Redhat
|
|
# but also on LSB-compliant SuSE releases and on Debian with the LSB package
|
|
# installed. (LSB is the Linux Standard Base)
|
|
#
|
|
# Based on the example in the "Designing High Quality Integrated Linux
|
|
# Applications HOWTO" by Avi Alkalay
|
|
# <http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/>
|
|
#
|
|
|
|
RETVAL=0
|
|
|
|
INITD=/etc/init.d
|
|
|
|
AUTODIR=/etc/xen/auto
|
|
LOCKFILE=/var/lock/subsys/xendomains
|
|
|
|
if [ -e /lib/lsb ]; then
|
|
# assume an LSB-compliant distro (Debian with LSB package,
|
|
# recent-enough SuSE, others...)
|
|
|
|
. /lib/lsb/init-functions # source LSB standard functions
|
|
|
|
on_fn_exit()
|
|
{
|
|
if [ $RETVAL -eq 0 ]; then
|
|
log_success_msg
|
|
else
|
|
log_failure_msg
|
|
fi
|
|
}
|
|
elif [ -r $INITD/functions ]; then
|
|
# assume a Redhat-like distro
|
|
. $INITD/functions # source Redhat functions
|
|
|
|
on_fn_exit()
|
|
{
|
|
if [ $RETVAL -eq 0 ]; then
|
|
success
|
|
else
|
|
failure
|
|
fi
|
|
|
|
echo
|
|
}
|
|
else
|
|
# none of the above
|
|
LOCKFILE=/var/lock/xendomains
|
|
|
|
on_fn_exit()
|
|
{
|
|
echo
|
|
}
|
|
fi
|
|
|
|
|
|
|
|
start() {
|
|
if [ -f $LOCKFILE ]; then return; fi
|
|
|
|
echo -n $"Starting auto Xen domains:"
|
|
|
|
# We expect config scripts for auto starting domains to be in
|
|
# AUTODIR - they could just be symlinks to files elsewhere
|
|
if [ -d $AUTODIR ] && [ $(ls $AUTODIR | wc -l) -gt 0 ]; then
|
|
touch $LOCKFILE
|
|
|
|
# Create all domains with config files in AUTODIR.
|
|
for dom in $AUTODIR/*; do
|
|
xm create --quiet --defconfig $dom
|
|
if [ $? -ne 0 ]; then
|
|
RETVAL=$?
|
|
fi
|
|
done
|
|
|
|
fi
|
|
|
|
on_fn_exit
|
|
}
|
|
|
|
stop()
|
|
{
|
|
# NB. this shuts down ALL Xen domains (politely), not just the ones in
|
|
# AUTODIR/*
|
|
# This is because it's easier to do ;-) but arguably if this script is run
|
|
# on system shutdown then it's also the right thing to do.
|
|
|
|
echo -n $"Shutting down all Xen domains:"
|
|
|
|
xm shutdown --all --wait --halt
|
|
|
|
RETVAL=$?
|
|
|
|
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
|
|
|
|
on_fn_exit
|
|
}
|
|
|
|
# This does NOT necessarily restart all running domains: instead it
|
|
# stops all running domains and then boots all the domains specified in
|
|
# AUTODIR. If other domains have been started manually then they will
|
|
# not get restarted.
|
|
# Commented out to avoid confusion!
|
|
#
|
|
#restart()
|
|
#{
|
|
# stop
|
|
# start
|
|
#}
|
|
|
|
# same as restart for now - commented out to avoid confusion
|
|
#reload()
|
|
#{
|
|
# restart
|
|
#}
|
|
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
|
|
stop)
|
|
stop
|
|
;;
|
|
|
|
# The following are commented out to disable them by default to avoid confusion
|
|
# - see the notes above
|
|
#
|
|
# restart)
|
|
# restart
|
|
# ;;
|
|
#
|
|
# reload)
|
|
# reload
|
|
# ;;
|
|
|
|
status)
|
|
xm list
|
|
;;
|
|
|
|
*)
|
|
echo $"Usage: $0 {start|stop|status}"
|
|
;;
|
|
esac
|
|
|
|
exit $RETVAL
|