#!/bin/sh # ganeti node daemon starter script # based on skeleton from Debian GNU/Linux ### BEGIN INIT INFO # Provides: ganeti # Required-Start: $syslog $remote_fs xend # Required-Stop: $syslog $remote_fs xend # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Ganeti Xen Cluster Manager # Description: Ganeti Xen Cluster Manager ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin DESC="Ganeti cluster" GANETIRUNDIR="@LOCALSTATEDIR@/run/ganeti" GANETI_DEFAULTS_FILE="@SYSCONFDIR@/default/ganeti" NODED_NAME="ganeti-noded" NODED="@PREFIX@/sbin/${NODED_NAME}" NODED_PID="${GANETIRUNDIR}/${NODED_NAME}.pid" NODED_ARGS="" MASTERD_NAME="ganeti-masterd" MASTERD="@PREFIX@/sbin/${MASTERD_NAME}" MASTERD_PID="${GANETIRUNDIR}/${MASTERD_NAME}.pid" MASTERD_ARGS="" RAPI_NAME="ganeti-rapi" RAPI="@PREFIX@/sbin/${RAPI_NAME}" RAPI_PID="${GANETIRUNDIR}/${RAPI_NAME}.pid" RAPI_ARGS="" SCRIPTNAME="@SYSCONFDIR@/init.d/ganeti" test -f $NODED || exit 0 . /lib/lsb/init-functions if [ -s $GANETI_DEFAULTS_FILE ]; then . $GANETI_DEFAULTS_FILE fi check_config() { for fname in \ "@LOCALSTATEDIR@/lib/ganeti/server.pem" do if ! [ -f "$fname" ]; then log_end_msg 0 log_warning_msg "Config $fname not there, will not run." exit 0 fi done } check_exitcode() { RC=$1 case $RC in 0) log_action_end_msg 0 ;; 11) log_action_end_msg 0 "not master" ;; *) log_action_end_msg 1 "exit code $RC" ;; esac } start_action() { # called as start_action daemon pidfile local daemon="$1"; shift local pidfile="$1"; shift log_action_begin_msg "$daemon" start-stop-daemon --start --quiet --exec "$daemon" --pidfile "$pidfile" \ -- "$@" check_exitcode $? } stop_action() { # called as stop_action daemon pidfile log_action_begin_msg "$1" start-stop-daemon --stop --quiet --oknodo \ --retry 30 --pidfile "$2" check_exitcode $? } case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" check_config start_action $NODED $NODED_PID $NODED_ARGS start_action $MASTERD $MASTERD_PID $MASTERD_ARGS start_action $RAPI $RAPI_PID $RAPI_ARGS ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" stop_action $RAPI $RAPI_PID stop_action $MASTERD $MASTERD_PID stop_action $NODED $NODED_PID ;; restart|force-reload) log_daemon_msg "Reloading $DESC" stop_action $RAPI $RAPI_PID stop_action $MASTERD $MASTERD_PID stop_action $NODED $NODED_PID check_config start_action $NODED $NODED_PID start_action $MASTERD $MASTERD_PID start_action $RAPI $RAPI_PID ;; *) log_success_msg "Usage: $SCRIPTNAME {start|stop|force-reload|restart}" exit 1 ;; esac exit 0