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