[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