From owner-freebsd-rc@FreeBSD.ORG Tue Aug 30 00:53:40 2011 Return-Path: Delivered-To: freebsd-rc@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:4f8:fff6::35]) by hub.freebsd.org (Postfix) with ESMTP id D7E1D1065672 for ; Tue, 30 Aug 2011 00:53:40 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from [127.0.0.1] (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id 23D7A15F1B9 for ; Tue, 30 Aug 2011 00:53:31 +0000 (UTC) Message-ID: <4E5C348D.2050703@FreeBSD.org> Date: Mon, 29 Aug 2011 17:53:33 -0700 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20110812 Thunderbird/6.0 MIME-Version: 1.0 To: freebsd-rc@freebsd.org References: In-Reply-To: X-Enigmail-Version: 1.3.1 Content-Type: multipart/mixed; boundary="------------030406000009010106080205" Subject: Re: RC script for rabbitmq X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2011 00:53:40 -0000 This is a multi-part message in MIME format. --------------030406000009010106080205 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 8/29/2011 7:13 AM, Chris Rees wrote: > Hey all, > > Just hacked in pidfile support for rabbitmq into the rc script, and > tidied it up a little. > > Please would someone kindly let me know if I'm doing anything horribly wrong? Not horribly, but you really need to read TPH section on rc.d scripts. :) Try the attached. -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/ --------------030406000009010106080205 Content-Type: text/plain; name="new-rabbitmq-rc-script.in" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="new-rabbitmq-rc-script.in" #!/bin/sh # $Id$ # # PROVIDE: rabbitmq # REQUIRE: 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` load_rc_config $name # 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="wait_for_pids $rc_pid" 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} } run_rc_command "$1" --------------030406000009010106080205--