#!/bin/sh # # rabbitmq for rc.d usage # $Id$ # PROVIDE: rabbitmq # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable RabbitMQ # # rabbitmq_enable="YES" . /etc/rc.subr name=rabbitmq rcvar=`set_rcvar` # Set some defaults : ${rabbitmq_enable="NO"} : ${rabbitmq_user="rabbitmq"} rabbitmq_server="%%PREFIX%%/sbin/rabbitmq-server" rabbitmq_ctl="%%PREFIX%%/sbin/rabbitmqctl" pidfile="/var/run/rabbitmq.pid" start_cmd="${name}_start" stop_cmd="env HOME=/var/db/rabbitmq su -m ${rabbitmq_user} -c 'sh -c \"${rabbitmq_ctl} stop\"'" stop_postcmd="${name}_pidwait" rotate_logs_cmd="env HOME=/var/db/rabbitmq su -m ${rabbitmq_user} -c 'sh -c \"${rabbitmq_ctl} rotate_logs\"'" status_cmd="env HOME=/var/db/rabbitmq su -m ${rabbitmq_user} -c 'sh -c \"${rabbitmq_ctl} status\"'" extra_commands="rotate_logs status" rabbitmq_start() { HOME=/var/db/rabbitmq su -m ${rabbitmq_user} \ -c "sh -c \"${rabbitmq_server} -detached\"" # Grab pid (it appears that parsing the output of # status is the most reliable method) su -m ${rabbitmq_user} \ -c "sh -c \"${rabbitmq_ctl} status\"" \ | sed -n 's/[^p]*pid,\([0-9]*\)[^0-9]*/\1/p' > ${pidfile} } rabbitmq_pidwait() { wait_for_pids $rc_pid } load_rc_config $name run_rc_command "$1"