summaryrefslogtreecommitdiff
path: root/debian/target.init
diff options
context:
space:
mode:
Diffstat (limited to 'debian/target.init')
-rw-r--r--debian/target.init54
1 files changed, 54 insertions, 0 deletions
diff --git a/debian/target.init b/debian/target.init
new file mode 100644
index 0000000..6d9fe3b
--- /dev/null
+++ b/debian/target.init
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+### BEGIN INIT INFO
+# Provides: target
+# Default-Start: 3 4 5
+# Default-Stop: 0 1 2 6
+# Required-Start: $local_fs $network
+# Required-Stop: $local_fs $network
+# Short-Description: Start LIO targets
+# Description: Loads configfs and restores LIO config with targetcli
+### END INIT INFO
+
+
+case "$1" in
+ start)
+ if [ ! -d /sys/kernel/config ]; then
+ echo "Mounting configfs"
+ modprobe configfs
+ mount -t configfs configfs /sys/kernel/config
+ if [ $? != 0 ]; then
+ exit 1
+ fi
+ fi
+ echo "Starting lio targets"
+ /usr/bin/targetcli restoreconfig clear_existing=true
+ if [[ $? -gt 0 ]]; then
+ exit 1
+ fi
+ ;;
+
+ stop)
+ echo "Stopping lio targets"
+ /usr/bin/targetcli clearconfig confirm=true
+ if [[ $? -gt 0 ]]; then
+ exit 1
+ fi
+ ;;
+
+ restart|force-reload)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ echo "Checking status of lio targets";
+ /usr/bin/targetcli sessions
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|force-reload|status}"
+esac
+
+exit 0