[stgt] [PATCH] Add init script, empty targets.conf, and sysconfig file

Florian Haas florian.haas at linbit.com
Tue Sep 8 11:18:57 CEST 2009


Imported from Red Hat scsi-target-utils package.
---
 conf/sysconfig.tgtd |    2 +
 conf/targets.conf   |    2 +
 scripts/tgtd.init   |  150 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 154 insertions(+), 0 deletions(-)
 create mode 100644 conf/sysconfig.tgtd
 create mode 100644 conf/targets.conf
 create mode 100644 scripts/tgtd.init

diff --git a/conf/sysconfig.tgtd b/conf/sysconfig.tgtd
new file mode 100644
index 0000000..976e94e
--- /dev/null
+++ b/conf/sysconfig.tgtd
@@ -0,0 +1,2 @@
+# configuration file
+#TGTD_CONFIG=/etc/tgt/targets.conf
diff --git a/conf/targets.conf b/conf/targets.conf
new file mode 100644
index 0000000..d485b54
--- /dev/null
+++ b/conf/targets.conf
@@ -0,0 +1,2 @@
+# Empty targets configuration file -- please see the package
+# documentation directory for an example.
diff --git a/scripts/tgtd.init b/scripts/tgtd.init
new file mode 100644
index 0000000..30fba3e
--- /dev/null
+++ b/scripts/tgtd.init
@@ -0,0 +1,150 @@
+#!/bin/sh
+#
+# chkconfig: - 39 35
+#
+### BEGIN INIT INFO
+# Provides:          tgtd
+# Required-Start:    $network
+# Short-Description: Starts and stops the generic storage target daemon
+# Description: tgtd provides the SCSI and software transport target state
+#              machine daemon.
+### END INIT INFO
+#
+#
+# pidfile: /var/run/tgtd.pid
+#
+# Source function library.
+. /etc/init.d/functions
+
+# Check for and source configuration file otherwise set defaults
+[ -f /etc/sysconfig/tgtd ] && . /etc/sysconfig/tgtd
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+RETVAL=0
+
+[ -z "${TGTD_CONFIG}" ] && {
+	TGTD_CONFIG="/etc/tgt/targets.conf"
+}
+
+# We will not support FCOE in this release
+#[ -z "${TGTD_FCOE}" ] || {
+#	TGTD_OPTIONS="$TGTD_OPTIONS $TGTD_FCOE"
+#}
+
+
+start()
+{
+	echo -n $"Starting SCSI target daemon: "
+	if [ -f /var/lock/subsys/tgtd ]; then
+		success
+		echo
+		return
+	fi
+
+	# check we have a config
+	[ ! -f "${TGTD_CONFIG}" ] && {
+		echo $"Configuration file ${TGTD_CONFIG} is missing"
+		failure
+		RETVAL=1
+		return
+	}
+
+	daemon tgtd $TGTD_OPTIONS
+
+	# read the config 
+	tgt-admin -e -c "${TGTD_CONFIG}"
+	RETVAL=$?
+	[ $RETVAL -ne 0 ] && {
+		tgtadm --op delete --mode system
+		failure
+		return
+	}
+
+	echo
+	touch /var/lock/subsys/tgtd
+}
+
+stop()
+{
+	echo -n $"Stopping SCSI target daemon: "
+
+	if [ ! -f /var/lock/subsys/tgtd ]; then
+		success
+		echo
+		return
+	fi
+
+	if tgtadm --op show -m target | grep "Target" >/dev/null ; then
+		if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
+			# if the system is going down force the shutdown
+			# so the shutdown does not hang
+			tgt-admin --delete ALL --force
+		else
+			tgt-admin --delete ALL
+			# must check for running targets here
+		fi
+	fi
+
+	# shut down tgtd
+	tgtadm --op delete --mode system
+	RETVAL=$?
+	[ $RETVAL -ne 0 ] && {
+		echo $"Failed to shutdown target"
+		failure
+		RETVAL=1
+		return
+	}
+
+	rm -f /var/lock/subsys/tgtd
+	success
+	echo
+}
+
+# this will kick out any logged in initiators and drop all targets
+# This will forcefully shut down TGTD even if there are active
+# initiators logged in.
+# Data in initiators write-cache not yet committed to the target
+# will be lost.
+# This will cause an unclean shutdown of the LUN.
+forcedstop()
+{
+	echo "Forced shutdown of the iscsi target may cause data corruption
+for initiators that are connected."
+	echo "You have 30 seconds to press CTRL-C and abort this operation."
+	sleep 30
+	tgt-admin --delete ALL --force
+	stop
+}
+
+restart()
+{
+	stop
+	start
+}
+
+case "$1" in
+	start)
+		start
+		;;
+	stop)
+		stop
+		;;
+	forcedstop)
+		forcedstop
+		;;
+	restart)
+		restart
+		;;
+	status)
+		status tgtd
+		RETVAL=$?
+		;;
+	condrestart)
+		[ -f /var/lock/subsys/tgtd ] && restart
+		;;
+	*)
+		echo $"Usage: $0 {start|stop|restart|status|condrestart|forcedstop}"
+		exit 1
+esac
+exit $RETVAL
-- 
1.6.0.4

--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the stgt mailing list