#! /bin/sh ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: # Short-Description: Starts and stops the iSCSI initiator services and logins to default targets ### END INIT INFO #set -x PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/iscsid ADM=/usr/sbin/iscsiadm PIDFILE=/var/run/iscsid.pid [ -x "$DAEMON" ] || exit 0 if [ ! -d /sys/class/ ]; then echo "Failure:" "iSCSI requires a mounted sysfs, not started." exit 1 fi nodestartup_re='s/^node\.conn\[0]\.startup[ ]*=[ ]*//p' RETVAL=0 start() { echo "Starting iSCSI initiator service" "iscsid" modprobe -q iscsi_tcp 2>/dev/null || : modprobe -q ib_iser 2>/dev/null || : if [ ! -f /etc/iscsi/initiatorname.iscsi ]; then INITIATORNAME=$(iscsi-iname) cat >/etc/iscsi/initiatorname.iscsi </dev/null if [ "$?" -ne "0" -a "$?" -ne "1" ]; then status=1 fi modprobe -r iscsi_tcp 2>/dev/null if [ "$?" -ne "0" -a "$?" -ne "1" ]; then status=1 fi } restart() { stop if [ $RETVAL -ne 0 ]; then echo "Failure:" "Stopping iSCSI initiator service failed, not starting" return $RETVAL fi start } restarttargets() { stoptargets if [ $RETVAL -ne 0 ]; then echo "Failure:" "Could not stop all targets, try again later" return $RETVAL fi starttargets } status() { #XXX FIXME: what to do here? #status iscsid # list active sessions echo Current active iSCSI sessions: $ADM -m session } case "$1" in start|starttargets|stop|stoptargets|restart|restarttargets|status) $1 ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac exit $RETVAL