#!/bin/bash # $Header: /root/magellan-cvs/src/xen-tools/xend.rc,v 1.1 2008-05-24 10:32:18 niro Exp $ #%rlevels: 3:s 4:s 5:s 0:k 1:k 2:k 6:k #%start: 60 #%stop: 30 #deps #%needs: #%before: #%after: source /etc/sysconfig/rc source $rc_functions is_privileged_domain() { grep -qsE '^control_d$' /proc/xen/capabilities return $? } await_daemons_up() { for ((i=0; i<5; i++)) do sleep 1 /usr/sbin/xend status && return 0 done return 1 } case "$1" in start) if is_privileged_domain then echo -e ${COLOREDSTAR}"Starting Xen control daemon ..." /usr/sbin/xend start /usr/sbin/xend status || await_daemons_up evaluate_retval else ${WARNING} "Can't start xend - this is not a privileged domain ..." print_status failure fi update_svcstatus $1 splash svc_started "$(basename $0)" 0 ;; stop) if [ "$(xm list | wc -l)" -gt 2 ] then echo -e ${COLOREDSTAR}"Stopping all domains ..." /usr/sbin/xm shutdown --all --wait >/dev/null evaluate_retval fi echo -e ${COLOREDSTAR}"Stopping Xen control daemon" /usr/sbin/xend stop evaluate_retval update_svcstatus $1 splash svc_stopped "$(basename $0)" 0 ;; restart) $0 stop sleep 1 $0 start ;; status) is_privileged_domain && /usr/sbin/xend status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac