#! /bin/bash
### BEGIN INIT INFO
# Provides:          qpidd
# Required-Start:    $syslog $time $remote_fs $network
# Required-Stop:     $syslog $time $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Qpid Broker
# Description:       Qpid Broker - AMQP messaging broker
### END INIT INFO
#
# Author:       Michal Belica <devel@beli.sk>
#
PATH=/usr/bin:/bin:/usr/bin
DAEMON=/usr/bin/qpidd
CONFIG=/etc/qpid/qpidd.conf
PIDFILE=/var/run/qpid/qpidd.pid
PIDDIR=`dirname "$PIDFILE"`
RUNAS=qpidd

export LD_LIBRARY_PATH=/usr/lib/qpid/deamon:$LD_LIBRARY_PATH
  
#нужно:
# создать пользователя qpidd: sudo useradd qpidd
# создать директорию sudo mkdir /var/spool/qpid;sudo chown qpidd:qpidd /var/spool/qpid
# дать права пользователю qpidd на каталог /var/run/qpid: sudo chown -R qpidd:qpidd /var/run/qpid/
# создать директорию /var/log/qpid и присвоить ей владельца qpidd: sudo mkdir /var/log/qpidd; sudo chown qpidd:qpidd /var/log/qpidd
 
test -x "$DAEMON" || exit 0
 
. /lib/lsb/init-functions
 
if [ ! -d "$PIDDIR" ] ; then
  mkdir "$PIDDIR"
  chown "${RUNAS}:" "$PIDDIR"
fi
 
case "$1" in
  start)
    log_daemon_msg "Starting Qpid Broker" "qpidd"
    start_daemon -p "$PIDFILE" /bin/su -s /bin/sh -c "$DAEMON -d --config $CONFIG" "$RUNAS"
    ret=$?
    # qpidd writes binary PID files. We have to improvize.
    sleep 1
    ps -u "$RUNAS" -C "$DAEMON" -o pid --no-headers > "$PIDFILE"
    log_end_msg $ret
    ;;
  stop)
    log_daemon_msg "Stopping Qpid Broker" "qpidd"
    killproc -p "$PIDFILE" "$DAEMON"
    ret=$?
    rm "$PIDFILE" 2> /dev/null
    log_end_msg $ret
    ;;
  force-reload|restart)
    $0 stop
    $0 start
    ;;
  status)
    status_of_proc -p "$PIDFILE" "$DAEMON" qpidd && exit 0 || exit $?
    ;;
  *)
    echo "Usage: /etc/init.d/qpidd {start|stop|restart|force-reload|status}"
    exit 1
    ;;
esac
 
exit 0
