I pulled the SysV init script included in the Ganesha 3.5 source tarball:
nfs-ganesha-3.5/src/scripts/init.d/nfs-ganesha.debian8

I had to make a couple of minor changes in order for it to work.  I changed
the LOCK file location from /var/lock/subsys to /var/lock.  I changed the
status call to use status_of_proc.

I've attached the working init script.

     Chris
#!/bin/bash
#
# chkconfig: 2345 50 50
# description: GANESHA NFS Daemon
#
# processname: /usr/bin/ganesha.nfsd
# config: /etc/ganesha/ganesha.nfsd.conf
# pidfile: /var/run/ganesha.nfsd.pid
#
### BEGIN INIT INFO
# Provides: ganesha
# Required-Start: $local_fs $named $time $network
# Required-Stop: $local_fs $named $time $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop ganesha daemon
# Description: NFS-GANESHA
### END INIT INFO


# source function library
#. /etc/rc.d/init.d/functions
. /lib/lsb/init-functions


PATHPROG=/usr/bin/ganesha.nfsd

# Default Ganesha options
LOGFILE=/var/log/ganesha/ganesha.log
CONFFILE=/etc/ganesha/ganesha.conf

prog=ganesha.nfsd
PID_FILE=${PID_FILE:=/var/run/${prog}.pid}
LOCK_FILE=${LOCK_FILE:=/var/lock/${prog}}

[ -f /etc/sysconfig/ganesha ] && . /etc/sysconfig/ganesha

[ -z "$NOFILE" ] && NOFILE=1048576

OPTIONS="-L $LOGFILE -f $CONFFILE -N NIV_EVENT -p $PID_FILE "
RETVAL=0


start() {
        echo -n $"Starting $prog: "
        if [ $UID -ne 0 ]; then
                RETVAL=1
                failure
        else
                ulimit -n $NOFILE
                log_daemon_msg "Starting nfs-ganesha daemon" nfs-ganesha
                if ! start-stop-daemon --start --oknodo --quiet --pidfile 
$PID_FILE --exec $PATHPROG -- $OPTIONS; then
                        log_end_msg 1
                        exit 1
                fi
                touch $LOCK_FILE
                log_end_msg 0
        fi
        echo
}

stop() {
        echo -n $"Stopping $prog: "
        if [ $UID -ne 0 ]; then
                RETVAL=1
                failure
        else
                log_daemon_msg "Stopping nfs-ganesha daemon" nfs-ganesha
                #start-stop-daemon --stop --quiet --pidfile
                killproc $PATHPROG
                RETVAL=$?
                if [ $RETVAL -eq 0 ]; then
                  log_end_msg 0
                  rm -rf $LOCK_FILE
                else
                  log_end_msg 1
                fi
        fi
        echo
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        if [ -f $LOCK_FILE ] ; then
                stop
                #avoid race
        sleep 3
        fi
        start
        ;;
  reload)
        echo -n $"Reloading $prog: "
        if [ -f $LOCK_FILE ] ; then
                killproc -p $PID_FILE $prog -HUP
                RETVAL=0
        else
                RETVAL=1
        fi
        echo
        ;;
  force-reload)
        stop
        start
        ;;
  try-restart)
        if [ -f $LOCK_FILE ] ; then
                stop

                #avoid race
                sleep 3
                start
        fi
        ;;
  status)
        if [ $RETVAL -eq 5 ] ; then
            RETVAL=3
        else
           status_of_proc -p $PID_FILE $PATHPROG
           RETVAL=$?
        fi
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|try-restart|status}"
        RETVAL=1
esac

exit $RETVAL

Reply via email to