mchristi 63a3144
#!/bin/sh
mchristi 63a3144
#
d3d8564
# 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
5a3872e
#
5a3872e
### BEGIN INIT INFO
5a3872e
# Provides:          iscsid
5a3872e
# Required-Start:    $network
5a3872e
# Required-Stop:     $network
5a3872e
# Short-Description: Starts and stops login iSCSI daemon.
5a3872e
# Description: iscsid provides the iSCSI session and connection state machine
5a3872e
#              for software iscsi/iser (iscsi_tcp/ib_iser) and partialy
5a3872e
#              offloaded hardware (bnx2i).
5a3872e
### END INIT INFO
5a3872e
#
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
{
5a3872e
	if [ -f /var/lock/subsys/iscsid ] ; then
5a3872e
		echo
5a3872e
		success
5a3872e
		return
5a3872e
	fi
5a3872e
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
5003024
stop_iscsid()
5003024
{
5003024
	killproc iscsid
5003024
	echo
5003024
        RETVAL=$?
5003024
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/iscsid
5003024
5003024
	modprobe -r ib_iser 2>/dev/null
5003024
	modprobe -r iscsi_tcp 2>/dev/null
5003024
}
5003024
mchristi 63a3144
stop()
mchristi 63a3144
{
5a3872e
	if [ ! -f /var/lock/subsys/iscsid ]; then
5a3872e
		echo
5a3872e
		success
5a3872e
		return
5a3872e
	fi
mchristi 63a3144
5003024
	declare -a iparams=( $(iscsiadm -m session 2>/dev/null | egrep "tcp|iser") )
5003024
	if [[ -z "${iparams[*]}" ]]; then
5003024
		# no sessions so we can just quit
5003024
		stop_iscsid
5003024
		return
5003024
	fi
5003024
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
5a3872e
		rm -f /var/lock/subsys/iscsid
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: "
5003024
	stop_iscsid
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