diff options
Diffstat (limited to 'extras/init.d/glusterd-Redhat.in')
| -rwxr-xr-x | extras/init.d/glusterd-Redhat.in | 123 |
1 files changed, 88 insertions, 35 deletions
diff --git a/extras/init.d/glusterd-Redhat.in b/extras/init.d/glusterd-Redhat.in index cf9d390f0..e320708ae 100755 --- a/extras/init.d/glusterd-Redhat.in +++ b/extras/init.d/glusterd-Redhat.in @@ -1,89 +1,142 @@ #!/bin/bash # -# chkconfig: 35 20 80 -# description: Gluster File System service for volume management +# glusterd Startup script for the glusterfs server # +# chkconfig: - 20 80 +# description: Clustered file-system server -# Get function from functions library +### BEGIN INIT INFO +# Provides: glusterd +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Should-Start: +# Should-Stop: +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: glusterfs server +# Description: Clustered file-system server +### END INIT INFO +# + +# Source function library. . /etc/rc.d/init.d/functions BASE=glusterd -PIDFILE=/var/run/$BASE.pid + +# Fedora File System Layout dictates /run +[ -e /run ] && RUNDIR="/run" +PIDFILE="${RUNDIR:-/var/run}/${BASE}.pid" + PID=`test -f $PIDFILE && cat $PIDFILE` + +# Overwriteable from sysconfig +LOG_LEVEL='' +LOG_FILE='' +GLUSTERD_OPTIONS='' +GLUSTERD_NOFILE='65536' + +[ -f /etc/sysconfig/${BASE} ] && . /etc/sysconfig/${BASE} + +[ ! -z $LOG_LEVEL ] && GLUSTERD_OPTIONS="${GLUSTERD_OPTIONS} --log-level ${LOG_LEVEL}" +[ ! -z $LOG_FILE ] && GLUSTERD_OPTIONS="${GLUSTERD_OPTIONS} --log-file ${LOG_FILE}" + GLUSTERFSD=glusterfsd GLUSTERFS=glusterfs GLUSTERD_BIN=@prefix@/sbin/$BASE -GLUSTERD_OPTS="--pid-file=$PIDFILE" +GLUSTERD_OPTS="--pid-file=$PIDFILE ${GLUSTERD_OPTIONS}" GLUSTERD="$GLUSTERD_BIN $GLUSTERD_OPTS" RETVAL=0 +LOCKFILE=/var/lock/subsys/${BASE} + # Start the service $BASE start() { - pidofproc -p $PIDFILE $GLUSTERD_BIN &> /dev/null - status=$? - if [ $status -eq 0 ]; then + if pidofproc -p $PIDFILE $GLUSTERD_BIN &> /dev/null; then echo "glusterd service is already running with pid $PID" - exit 1 + return 0 else + ulimit -n $GLUSTERD_NOFILE echo -n $"Starting $BASE:" daemon $GLUSTERD RETVAL=$? echo - [ $RETVAL -ne 0 ] && exit $RETVAL + [ $RETVAL -eq 0 ] && touch $LOCKFILE + return $RETVAL fi - } # Stop the service $BASE stop() { echo -n $"Stopping $BASE:" - pidofproc -p $PIDFILE $GLUSTERD_BIN &> /dev/null - status=$? - if [ $status -eq 0 ]; then + if pidofproc -p $PIDFILE $GLUSTERD_BIN &> /dev/null; then killproc -p $PIDFILE $BASE - [ -w $PIDFILE ] && rm -f $PIDFILE else killproc $BASE fi + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f $LOCKFILE + return $RETVAL +} - echo - pidof -c -o %PPID -x $GLUSTERFSD &> /dev/null - [ $? -eq 0 ] && killproc $GLUSTERFSD &> /dev/null +restart() +{ + stop + start +} - #pidof -c -o %PPID -x $GLUSTERFS &> /dev/null - #[ $? -eq 0 ] && killproc $GLUSTERFS &> /dev/null +reload() +{ + restart +} - if [ -f /etc/glusterd/nfs/run/nfs.pid ] ;then - pid=`cat /etc/glusterd/nfs/run/nfs.pid`; - cmd=`ps -p $pid -o comm=` +force_reload() +{ + restart +} - if [ $cmd == "glusterfs" ]; then - kill `cat /etc/glusterd/nfs/run/nfs.pid` - fi - fi +rh_status() +{ + status $BASE +} + +rh_status_q() +{ + rh_status &>/dev/null } ### service arguments ### case $1 in start) - start + rh_status_q && exit 0 + $1 ;; stop) - stop + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload ;; status) - status $BASE + rh_status ;; - restart) - $0 stop - $0 start + condrestart|try-restart) + rh_status_q || exit 0 + restart ;; *) - echo $"Usage: $0 {start|stop|status|restart}." + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" exit 1 esac -exit 0 +exit $? |
