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 |
|