#!/bin/sh
#
# Kexec startup script
#
# chkconfig: 2345 26 59
#
# description: 
#
### BEGIN INIT INFO
# Provides: kexec
# Default-Start: 2 3 4 5
# Short-Description: Kexec service
# Description: Load kexec service for quickly restarting kernel
### END INIT INFO

. /etc/init.d/functions

if [ -f /etc/sysconfig/kexec ]; then 
	. /etc/sysconfig/kexec
fi

case "$1" in
  start)
	gprintf "Starting the kexec-tools: "
	if [ ! "$LOAD_KEXEC" = "true" ]; then
		exit 0
	fi
	test -x /sbin/kexec || exit 0
	test "x`cat /sys/kernel/kexec_loaded`y" = "x1y" &&  exit 0

	REAL_APPEND="$APPEND"

	if [ -z "$REAL_APPEND"]
	then
		REAL_APPEND="`cat /proc/cmdline`"
	else
		REAL_APPEND=" "
	fi

	if [ -z "$INITRD" ]
	then
		/sbin/kexec -l "$KERNEL_IMAGE" --append="$REAL_APPEND"
		RETVAL=$?
	else
		/sbin/kexec -l "$KERNEL_IMAGE" --initrd="$INITRD" --append="$REAL_APPEND"
		RETVAL=$?
	fi
	if [ $RETVAL = 0 ] ; then
		success $"%s startup" "$base"
	else
		failure $"%s startup" "$base"
	fi
	echo
	[ $RETVAL -eq 0 ]
	;;

   stop)
	gprintf "Stoping the kexec-tools:"
	/sbin/kexec -u
	RETVAL=$?
	if [ $RETVAL = 0 ]; then
		success $"%s stop" "$base"
	else
		failure $"%s stop" "$base"
	fi
	echo
	[ $RETVAL -eq 0 ] 
	;;
  restart|reload)
  	$0 stop
	$0 start
        ;;
  *)
        gprintf "Usage: {start|stop|restart}\n" "$0"
	RETVAL=1
        ;;
esac

exit $RETVAL
