#!/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