mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
107 lines
2.4 KiB
Bash
107 lines
2.4 KiB
Bash
#!/bin/bash
|
|
#
|
|
# xe-linux-distribution Write Linux distribution information to XenStore.
|
|
#
|
|
# chkconfig: 2345 14 86
|
|
# description: Writes Linux distribution version information to XenStore.
|
|
#
|
|
### BEGIN INIT INFO
|
|
# Provides: XenServer Virtual Machine Tools
|
|
# Required-Start: $local_fs
|
|
# Required-Stop: $local_fs
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: XenServer Virtual Machine daemon providing host integration services
|
|
# Description: Writes Linux distribution version information to XenStore.
|
|
### END INIT INFO
|
|
|
|
LANG="C"
|
|
export LANG
|
|
|
|
if [ -f /etc/init.d/functions ] ; then
|
|
. /etc/init.d/functions
|
|
else
|
|
action()
|
|
{
|
|
descr=$1 ; shift
|
|
cmd=$@
|
|
echo -n "$descr "
|
|
$cmd
|
|
ret=$?
|
|
if [ $ret -eq 0 ] ; then
|
|
echo "OK"
|
|
else
|
|
echo "Failed"
|
|
fi
|
|
return $ret
|
|
}
|
|
fi
|
|
|
|
XE_LINUX_DISTRIBUTION=/usr/sbin/xe-linux-distribution
|
|
XE_LINUX_DISTRIBUTION_CACHE=/var/cache/xe-linux-distribution
|
|
XE_DAEMON=/usr/sbin/xe-daemon
|
|
XE_DAEMON_PIDFILE=/var/run/xe-daemon.pid
|
|
|
|
if [ ! -x "${XE_LINUX_DISTRIBUTION}" ] ; then
|
|
exit 0
|
|
fi
|
|
|
|
start()
|
|
{
|
|
if [ ! -e /proc/xen/xenbus ] ; then
|
|
if [ ! -d /proc/xen ] ; then
|
|
action $"Mounting xenfs on /proc/xen:" /bin/false
|
|
echo "Could not find /proc/xen directory."
|
|
echo "You need a post 2.6.29-rc1 kernel with CONFIG_XEN_COMPAT_XENFS=y and CONFIG_XENFS=y|m"
|
|
exit 1
|
|
else
|
|
# This is needed post 2.6.29-rc1 when /proc/xen support was pushed upstream as a xen filesystem
|
|
action $"Mounting xenfs on /proc/xen:" mount -t xenfs none /proc/xen
|
|
fi
|
|
fi
|
|
|
|
if [ -e /proc/xen/capabilities ] && grep -q control_d /proc/xen/capabilities ; then
|
|
# Do not want daemon in domain 0
|
|
exit 0
|
|
fi
|
|
|
|
action $"Detecting Linux distribution version:" \
|
|
${XE_LINUX_DISTRIBUTION} ${XE_LINUX_DISTRIBUTION_CACHE}
|
|
|
|
action $"Starting xe daemon: " /bin/true
|
|
mkdir -p $(dirname ${XE_DAEMON_PIDFILE})
|
|
# This is equivalent to daemon() in C
|
|
( exec &>/dev/null ; ${XE_DAEMON} -p ${XE_DAEMON_PIDFILE} & )
|
|
}
|
|
|
|
stop()
|
|
{
|
|
action $"Stopping xe daemon: " kill -TERM $(cat ${XE_DAEMON_PIDFILE})
|
|
}
|
|
|
|
# fail silently if not running xen
|
|
if [ ! -d /proc/xen ]; then
|
|
exit
|
|
fi
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
force-reload|restart)
|
|
stop
|
|
start
|
|
;;
|
|
*)
|
|
# do not advertise unreasonable commands that there is no reason
|
|
# to use with this device
|
|
echo $"Usage: $0 start|restart"
|
|
exit 1
|
|
esac
|
|
|
|
exit $?
|
|
|