[Gluster-devel] Init script
Anand Avati
avati at zresearch.com
Tue Aug 7 09:53:36 UTC 2007
committed the script under extras/init.d/glusterfsd. Thanks a bunch!
avati
2007/8/3, Christopher Hawkins <chawkins at veracitynetworks.com>:
>
> > Subject: Re: [Gluster-devel] Updated debian patch
> >
> >
> > > Chris,
> > > any patches you would want us to apply to the codebase (init.d
> > > script?) which might make your life easier?
> >
> > Absolutly. A well maintained init.d script in the code base
> > would be fantastic, and then usable on any system, not just debian.
> >
> >
> >
> > Thanx Matt.
>
> Hi guys,
>
> Here's an init script I put together that should work on any system,
> though
> I have only tried it so far on Centos. It's self contained... doesn't use
> any init functions in the hope that it will portable across distro's. So
> far
> it's been good to me and I was going to post it anyway, so I guess now is
> the time! It's not fancy, doesn't check mounts or anything like that, but
> it
> seems to work well and reliably.
>
> PS - I am not a developer by any stretch of the imagination, so in the
> event
> that my scripting is ugly in the eyes of a real coder, have a laugh at my
> expense but please fix it and re-post. ;-) And thanks from all of us to
> the gluster team for all the great work. This is a fantastic project!
>
> #!/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
>
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
>
--
It always takes longer than you expect, even when you take into account
Hofstadter's Law.
-- Hofstadter's Law
More information about the Gluster-devel
mailing list