mchristi 63a3144
#!/bin/sh
mchristi 63a3144
#
mchristi 63a3144
# chkconfig: 345 7 89
mchristi 63a3144
# description: Starts and stops the iSCSI daemon.
mchristi 63a3144
#
mchristi 63a3144
# processname: iscsid
mchristi 63a3144
# pidfile: /var/run/iscsid.pid
mchristi 63a3144
# config:  /etc/iscsi/iscsid.conf
mchristi 63a3144
mchristi 63a3144
# Source function library.
mchristi 63a3144
. /etc/init.d/functions
mchristi 63a3144
mchristi 63a3144
PATH=/sbin:/bin:/usr/sbin:/usr/bin
mchristi 63a3144
mchristi 63a3144
RETVAL=0
mchristi 63a3144
mchristi 63a3144
start()
mchristi 63a3144
{
mchristi 63a3144
	echo -n $"Turning off network shutdown. "
mchristi 63a3144
	# we do not want iscsi or network to run during system shutdown
mchristi 63a3144
	# incase there are RAID or multipath devices using
mchristi 63a3144
	# iscsi disks
mchristi 63a3144
	chkconfig --level 06 network off
mchristi 63a3144
	rm /etc/rc0.d/*network
mchristi 63a3144
	rm /etc/rc6.d/*network
mchristi 63a3144
mchristi 63a3144
	echo -n $"Starting iSCSI daemon: "
mchristi 63a3144
	modprobe -q iscsi_tcp
mchristi 63a3144
	modprobe -q ib_iser
mchristi 63a3144
	daemon iscsid
mchristi 63a3144
	RETVAL=$?
mchristi 63a3144
	echo
mchristi 63a3144
	[ $RETVAL -eq 0 ] || return
mchristi 63a3144
mchristi 63a3144
	touch /var/lock/subsys/iscsid
mchristi 63a3144
mchristi 63a3144
	success
mchristi 63a3144
	echo
mchristi 63a3144
}
mchristi 63a3144
mchristi 63a3144
stop()
mchristi 63a3144
{
mchristi 63a3144
	rm -f /var/lock/subsys/iscsid
mchristi 63a3144
mchristi 63a3144
        # If this is a final shutdown/halt, do nothing since
mchristi 63a3144
        # we may need iscsid for as long as possible (halt script kills
mchristi 63a3144
	# us at the last second)
mchristi 63a3144
        if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
mchristi 63a3144
                success
mchristi 63a3144
                return
mchristi 63a3144
        fi
mchristi 63a3144
mchristi 63a3144
        # don't turn off iscsi if root is possibly on a iscsi disk
mchristi 63a3144
        rootopts=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $4; }}' /etc/mtab)
mchristi 63a3144
        if [[ "$rootopts" =~ "_netdev" ]] ; then
mchristi 63a3144
                echo $"Can not shutdown iSCSI. Root is on a iSCSI disk."
mchristi 63a3144
                exit 1
mchristi 63a3144
        fi
mchristi 63a3144
mchristi 63a3144
	echo -n $"Stopping iSCSI daemon: "
mchristi 63a3144
mchristi 63a3144
	# iscsid does not have a nice shutdown process.
mchristi 63a3144
	# It really should never be stopped
mchristi 63a3144
	pkill -KILL iscsid
mchristi 63a3144
	echo
mchristi 63a3144
mchristi 63a3144
	modprobe -r ib_iser 2>/dev/null
mchristi 63a3144
	modprobe -r iscsi_tcp 2>/dev/null
mchristi 63a3144
}
mchristi 63a3144
mchristi 63a3144
restart()
mchristi 63a3144
{
mchristi 63a3144
	stop
mchristi 63a3144
	start
mchristi 63a3144
}
mchristi 63a3144
mchristi 63a3144
case "$1" in
mchristi 63a3144
	start)
mchristi 63a3144
		start
mchristi 63a3144
		;;
mchristi 63a3144
	stop)
mchristi 63a3144
		stop
mchristi 63a3144
		;;
mchristi 63a3144
	restart)
mchristi 63a3144
	        stop
mchristi 63a3144
		start
mchristi 63a3144
		;;
mchristi 63a3144
	status)
mchristi 63a3144
		status iscsid
mchristi 63a3144
		RETVAL=$?
mchristi 63a3144
		;;
mchristi 63a3144
        condrestart)
mchristi 63a3144
	        [ -f /var/lock/subsys/iscsid ] && restart
mchristi 63a3144
		;;
mchristi 63a3144
	*)
mchristi 63a3144
		echo $"Usage: $0 {start|stop|restart|status|condrestart}"
mchristi 63a3144
		exit 1
mchristi 63a3144
esac
mchristi 63a3144
mchristi 63a3144
exit $RETVAL