From ee9984882e3b28e76fb3af5491a8d2bf22e432a3 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Sun, 21 Apr 2013 11:10:06 +0200 Subject: extras: include Fedora changes in init.d/glusterd The changes in the .spec file from Fedora have largely been merged into the glusterfs.spec.in. It seems that some dependencies have been missed, most importantly some additions to the init-script that are called while (un)installing or updating RPMs. These changes come from the downstream Fedora package that carries its own glusterd.init script. In future, Fedora/EPEL should be able to drop that file and use the Gluster project version. Change-Id: Iac25854b0c559b93fa1dd452a04663bd95ea3378 BUG: 954149 URL: http://lists.nongnu.org/archive/html/gluster-devel/2013-04/msg00077.html CC: Fedora GlusterFS Packagers Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/4864 Tested-by: Gluster Build System Reviewed-by: Kaleb KEITHLEY Reviewed-by: Anand Avati --- extras/init.d/glusterd-Redhat.in | 96 ++++++++++++++++++++++++++++++---------- 1 file changed, 73 insertions(+), 23 deletions(-) (limited to 'extras') diff --git a/extras/init.d/glusterd-Redhat.in b/extras/init.d/glusterd-Redhat.in index 858f8224..e1e5e859 100755 --- a/extras/init.d/glusterd-Redhat.in +++ b/extras/init.d/glusterd-Redhat.in @@ -1,20 +1,39 @@ #!/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} @@ -31,57 +50,88 @@ RETVAL=0 # 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 0 + return 0 else + ulimit -n $GLUSTERD_NOFILE echo -n $"Starting $BASE:" daemon $GLUSTERD RETVAL=$? echo - [ $RETVAL -ne 0 ] && exit $RETVAL + 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 +} + +restart() +{ + stop + start +} + +reload() +{ + restart +} +force_reload() +{ + restart +} + +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 - RETVAL=$? + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload ;; status) - status $BASE - RETVAL=$? + 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 $RETVAL +exit $? -- cgit