Here's a proposed change:

        Update for Fedora/LSB init-scripts guidelines:
        <http://fedoraproject.org/wiki/FCNewInit/Initscripts>
        * etc/qpidd: Provide an LSB header.
        Allow options to be specified via QPIDD_OPTIONS=...
          in /etc/sysconfig/qpidd.
        Diagnose and 'exit 3' for the unsupported "reload".
        Don't mention unused $pidfile.
        Remove useless curly braces: ${lockfile} -> $lockfile.
        Write usage and error diagnostics to stderr, not stdout.
        Change spelling: condrestart -> try-restart.

I'm not sure about the Default-Start/Stop run levels.
If something different would be better, let me know.

This little excursion leads me to propose a small
improvement for qpidd: give qpidd a --pidfile=F (-p) option,
whereby it would write its PID into the file F.  This is better
than relying on the default pidof-related machinery, for when the
driver program is a script (e.g., a valgrind-running wrapper).

Hmm... Since we're invoking qpid via the "daemon" function,
I wonder if using qpid's --daemon option is unnecessary.
At least it sure looks that way.  For now I'm leaving it.
Comments?

Index: etc/qpidd
===================================================================
--- etc/qpidd   (revision 553520)
+++ etc/qpidd   (working copy)
@@ -2,10 +2,21 @@
 #
 # qpidd        Startup script for the Qpid messaging daemon.
 #
+
+### BEGIN INIT INFO
+# Provides: qpidd
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: start or stop qpidd
+# Description: Qpidd is an AMQP broker. It receives, stores, routes and
+#      forwards messages using the AMQP protcol.
+### END INIT INFO
+
 # chkconfig: - 85 15
 # description: Qpidd is an AMQP broker. It receives, stores, routes and 
forwards messages using the AMQP protcol.
 # processname: qpidd
-# 

 prog=qpidd
 lockfile=/var/lock/subsys/$prog
@@ -13,15 +24,20 @@
 # Source function library.
 . /etc/rc.d/init.d/functions

+QPIDD_OPTIONS=
+if [ -f /etc/sysconfig/$prog ] ; then
+       . /etc/sysconfig/$prog
+fi
+
 RETVAL=0

 start() {
-        echo -n $"Starting Qpid AMQP daemon: "
-        daemon $prog --daemon
-        RETVAL=$?
-        echo
-        [ $RETVAL = 0 ] && touch ${lockfile}
-        return $RETVAL
+       echo -n $"Starting Qpid AMQP daemon: "
+       daemon --check $prog $prog --daemon $QPIDD_OPTIONS
+       RETVAL=$?
+       echo
+       [ $RETVAL = 0 ] && touch $lockfile
+       return $RETVAL
 }

 stop() {
@@ -29,9 +45,14 @@
        killproc $prog
        RETVAL=$?
        echo
-       [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
+       [ $RETVAL = 0 ] && rm -f $lockfile
 }

+reload() {
+       echo 1>&2 $"$0: reload not supported"
+       exit 3
+}
+
 restart() {
        stop
        start
@@ -39,27 +60,21 @@

 # See how we were called.
 case "$1" in
-  start)
-       start
+  start|stop|restart|reload)
+       $1
        ;;
-  stop)
-       stop
-       ;;
   status)
-        status $prog
+       status $prog
        RETVAL=$?
        ;;
-  restart|reload)
+  force-reload)
        restart
        ;;
-  condrestart)
-       if [ -e $lockfile ] ; then restart ; fi
+  try-restart)
+       [ -e $lockfile ] && restart || :
        ;;
-  reload)
-        reload
-       ;;
   *)
-       echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
+       echo 1>&2 $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 1
 esac

Reply via email to