summaryrefslogtreecommitdiffstats
path: root/extras/init.d/glusterfsd
diff options
context:
space:
mode:
Diffstat (limited to 'extras/init.d/glusterfsd')
-rwxr-xr-xextras/init.d/glusterfsd110
1 files changed, 110 insertions, 0 deletions
diff --git a/extras/init.d/glusterfsd b/extras/init.d/glusterfsd
new file mode 100755
index 00000000000..866a0010e9a
--- /dev/null
+++ b/extras/init.d/glusterfsd
@@ -0,0 +1,110 @@
+#!/bin/bash
+#
+# chkconfig: 35 90 12
+# description: Glusterfsd server
+#
+
+# Get function from functions library
+# . /etc/rc.d/init.d/functions
+
+BASE=glusterfsd
+GSERVER="/sbin/$BASE -f /etc/glusterfs/glusterfs-server.vol"
+
+# A function to stop gluster
+killgluster()
+{
+ killlevel="-9"
+ # Find pid.
+ pid=
+ if [ -f /var/run/$BASE.pid ]; then
+ local line p
+ read line < /var/run/$BASE.pid
+ for p in $line ; do
+ [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid
+$p"
+ done
+ fi
+ if [ -z "$pid" ]; then
+ pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
+ pidof -o $$ -o $PPID -o %PPID -x $BASE`
+ fi
+ # Kill it.
+ kill $killlevel $pid
+ if [ "$?" = 0 ]
+ then
+ echo "Gluster process $pid has been killed"
+ initlog -n "Kill gluster" -e 1
+ else
+ echo "Failed: Gluster process $pid has not been killed"
+ initlog -n "Kill gluster" -e 2
+ fi
+
+ # Remove pid and lock file if any.
+ if [ -f /var/run/$BASE.pid ]
+ then
+ rm -f /var/run/$BASE.pid && initlog -n "Remove $BASE.pid:" -e
+1
+ else echo "$BASE.pid not found" && initlog -n "Remove
+$BASE.pid:" -e 2
+ fi
+
+ if [ -f /var/lock/subsys/$BASE ]
+ then
+ rm -f /var/lock/subsys/$BASE && initlog -n "Remove $BASE lock
+file:" -e 1
+ else echo "$BASE lock file not found" && initlog -n "Remove
+$BASE lock file:" -e 2
+ fi
+}
+
+# Start the service $BASE
+start()
+{
+ initlog -c "echo -n Starting $BASE:"
+ $GSERVER
+ if [ $? = 0 ]
+ then
+ touch /var/lock/subsys/$BASE
+ initlog -n "Starting $BASE" -e 1
+ echo " [OK]"
+ else
+ echo "$BASE start failed."
+ initlog -n "$BASE start" -e 2
+ fi
+}
+
+# Stop the service $BASE
+stop()
+{
+ echo "Stopping $BASE:"
+ killgluster
+}
+status()
+{
+ if test "`lsof |grep -c /sbin/$BASE`" = "0"
+ then echo "$BASE is stopped."
+ else echo "$BASE is running..."
+ fi
+}
+
+### service arguments ###
+case $1 in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status
+ ;;
+ restart|reload|condrestart)
+ stop
+ start
+ ;;
+ *)
+ echo $.Usage: $0 {start|stop|restart|reload|status}.
+ exit 1
+esac
+
+exit 0