diff options
Diffstat (limited to 'extras/init.d/glusterfsd')
-rwxr-xr-x | extras/init.d/glusterfsd | 110 |
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 |