Blame etc/initd/initd.debian

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