[Gluster-devel] Red Hat init.d Script

Rossi Andrea Modesto an.rossi at reply.it
Fri Dec 14 11:56:04 UTC 2007


Hi All,

i use this script on my RHEL5:

#!/bin/bash
#===============================================================================
#
#          FILE:  glusterfsd
#
#         USAGE:  service glusterfsd {start|stop|restart|reload}
#
#   DESCRIPTION: 
#       OPTIONS:
#  REQUIREMENTS:  ---
#          BUGS:  ---
#         NOTES:  ---
#        AUTHOR:  Andrea Modesto Rossi, an.rossi at reply.it
#       COMPANY:  Spike Reply
#       LICENSE:  GPL
#       VERSION:  1.0 rc1
#       CREATED:  14/12/2007 11:21:27 CEST
#      REVISION:  ---
#===============================================================================

# Get function from functions library
#. /etc/rc.d/init.d/functions

LOGGER="/usr/bin/logger"
BASE=glusterfsd
GLUSTERFSD="/sbin/$BASE"
GSERVER="/sbin/$BASE -f /etc/glusterfs/glusterfs-server.vol"


function log_fail()
{
    echo "FAILED,$1"
}

getpid()
{
       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
}

# A function to stop gluster
killgluster()
{
       killlevel="-9"
       getpid
       if [ ! -z $pid ] ; then

           kill $killlevel $pid
           if [ "$?" = 0 ]
               then
                echo "Stopping $BASE:                [ OK ]"
                $LOGGER -p daemon.info "Gluster process $pid has been killed"          
           else
                echo "Stopping $BASE:                [ FAILED ]"
                $LOGGER -p daemon.error "Failed: Gluster process $pid has not been killed"
          fi

       # Remove pid and lock file if any.
          if [ -f /var/run/$BASE.pid ] ; then
               rm -f /var/run/$BASE.pid && logger -p daemon.info "Remove $BASE.pid:"
          else
               echo "$BASE.pid not found" && logger -p daemon.error "Remove $BASE.pid:"
          fi

          if [ -f /var/lock/subsys/$BASE ] ; then
             rm -f /var/lock/subsys/$BASE && logger -p daemon.info "Remove $BASE lock file:"
          else
             echo "$BASE lock file not found" && logger -p daemon.error "Remove $BASE lock file:"
         fi

       else
         echo "Stopping $BASE:          [ FAILED ]"
       fi
}

# Start the service $BASE
start()
{    
       $LOGGER -p daemon.notice "Starting $BASE:"
       $GSERVER > /dev/null 2>&1
       if [ $? = 0 ]
        then
          touch /var/lock/subsys/$BASE
          $LOGGER -p daemon.info "Starting $BASE:               [ OK ]"
          echo "Starting $BASE:                [ OK ]"
        else
          $LOGGER -p daemon.error "Starting $BASE:              [ FAILED ]"
          echo "Starting $BASE:               [ FAILED ]"
       fi
}

# Stop the service $BASE
stop()
{
       killgluster
}

status()
{ 
       getpid
       if [ -z $pid ] ; then
          echo "$BASE is stopped."
       else
          echo "$BASE is running:               $pid"
       fi
}


if [ ! -f $LOGGER ] ; then
    log_fail "cannot find logger"
    exit 1
fi

if [ ! -f $GLUSTERFSD ] ; then
    log_fail "cannot find glusterfsd"
    exit 1
fi

case "$1" in

    'start')
        start
        ;;

    'stop')
        stop
        ;;

    'restart')
        stop
        start
        ;;

    'reload')
        stop
        start
        ;;

    'status')
        status
        ;;

    *)
        echo "Usage: $0 { start | stop | restart | reload | status }"
        exit 1
        ;;
esac

exit 0


--------------------------------------------------------------------
Andrea Modesto Rossi
Spike Reply S.r.l.
Via Castellanza, 11 - 20151 Milano
e-mail an.rossi at reply.it
www.reply.it
--------------------------------------------------------------------
--------------------------------------------------------------------

--
The information transmitted is intended for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.





More information about the Gluster-devel mailing list