Blame etc/initd/boot.suse

Packit eace71
#!/bin/bash
Packit eace71
#
Packit eace71
# /etc/init.d/iscsi
Packit eace71
#
Packit eace71
### BEGIN INIT INFO
Packit eace71
# Provides:          iscsiboot
Packit eace71
# Required-Start:
Packit eace71
# Should-Start:      boot.multipath
Packit eace71
# Required-Stop:
Packit eace71
# Should-Stop:
Packit eace71
# Default-Start:     B
Packit eace71
# Default-Stop:      
Packit eace71
# Short-Description: iSCSI initiator daemon root-fs support
Packit eace71
# Description:       Starts the iSCSI initiator daemon if the
Packit eace71
#                    root-filesystem is on an iSCSI device
Packit eace71
#               
Packit eace71
### END INIT INFO
Packit eace71
Packit eace71
ISCSIADM=/sbin/iscsiadm
Packit eace71
CONFIG_FILE=/etc/iscsid.conf
Packit eace71
DAEMON=/sbin/iscsid
Packit eace71
ARGS="-c $CONFIG_FILE"
Packit eace71
Packit eace71
# Source LSB init functions
Packit eace71
. /etc/rc.status
Packit eace71
Packit eace71
#
Packit eace71
# This service is run right after booting. So all targets activated
Packit eace71
# during mkinitrd run should not be removed when the open-iscsi
Packit eace71
# service is stopped.
Packit eace71
#
Packit eace71
iscsi_mark_root_nodes()
Packit eace71
{
Packit eace71
    $ISCSIADM -m session 2> /dev/null | while read t num i target ; do
Packit eace71
	ip=${i%%:*}
Packit eace71
	STARTUP=`$ISCSIADM -m node -p $ip -T $target 2> /dev/null | grep "node.conn\[0\].startup" | cut -d' ' -f3`
Packit eace71
	if [ "$STARTUP" -a "$STARTUP" != "onboot" ] ; then
Packit eace71
	    $ISCSIADM -m node -p $ip -T $target -o update -n node.conn[0].startup -v onboot
Packit eace71
	fi
Packit eace71
    done
Packit eace71
}
Packit eace71
Packit eace71
# Reset status of this service
Packit eace71
rc_reset
Packit eace71
Packit eace71
# We only need to start this for root on iSCSI
Packit eace71
if ! grep -q iscsi_tcp /proc/modules ; then
Packit eace71
    rc_failed 6
Packit eace71
    rc_exit
Packit eace71
fi
Packit eace71
Packit eace71
case "$1" in
Packit eace71
    start)
Packit eace71
	echo -n "Starting iSCSI initiator for the root device: "
Packit eace71
	startproc $DAEMON $ARGS
Packit eace71
	rc_status -v
Packit eace71
	iscsi_mark_root_nodes
Packit eace71
	;;
Packit eace71
    stop|restart|reload)
Packit eace71
	rc_failed 0
Packit eace71
	;;
Packit eace71
    status)
Packit eace71
	echo -n "Checking for iSCSI initiator service: "
Packit eace71
	if checkproc $DAEMON ; then
Packit eace71
	    rc_status -v
Packit eace71
	else
Packit eace71
	    rc_failed 3
Packit eace71
	    rc_status -v
Packit eace71
	fi
Packit eace71
	;;
Packit eace71
    *)
Packit eace71
	echo "Usage: $0 {start|stop|status|restart|reload}"
Packit eace71
	exit 1
Packit eace71
	;;
Packit eace71
esac
Packit eace71
rc_exit
Packit eace71