Date: Mon, 8 Oct 2007 17:41:59 GMT From: Steven Hartland <steven.hartland@multiplay.co.uk> To: freebsd-gnats-submit@FreeBSD.org Subject: conf/117027: rc.subr doesnt deal with perl daemons Message-ID: <200710081741.l98Hfx88018882@www.freebsd.org> Resent-Message-ID: <200710081750.l98Ho28n010585@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 117027 >Category: conf >Synopsis: rc.subr doesnt deal with perl daemons >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Oct 08 17:50:01 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Steven Hartland >Release: FreeBSD 6.2-RELEASE-p7 i386 >Organization: Multiplay >Environment: FreeBSD core2.multiplay.co.uk 6.2-RELEASE-p7 FreeBSD 6.2-RELEASE-p7 #1: Thu Aug 2 00:54:23 BST 2007 root@core2.multiplay.co.uk:/usr/src/sys/ i386/compile/MPUK_SMP i386 >Description: Configuring a rc script to deal with perl daemons currently fails. This is because the perl daemonization results in a procname of "[perl]" where as the currently the only special case tested is "the basename of the interpreter plus a colon" Example output: ps -o "pid,jid,command" -p 60082 PID JID COMMAND 60082 0 [perl] >How-To-Repeat: Try the mrtg daemon script: #!/bin/sh # # $FreeBSD: ports/net-mgmt/mrtg/files/mrtg_daemon.sh.in,v 1.5 2006/04/23 17:39:52 oliver Exp $ # # PROVIDE: mrtg_daemon # REQUIRE: DAEMON bsnmpd snmpd . /etc/rc.subr name="mrtg_daemon" rcvar=`set_rcvar` load_rc_config $name : ${mrtg_daemon_enable="NO"} : ${mrtg_daemon_pidfile="/var/run/mrtg/mrtg.pid"} : ${mrtg_daemon_user="mrtg"} : ${mrtg_daemon_group="mrtg"} : ${mrtg_daemon_config="/usr/local/etc/mrtg/mrtg.cfg"} : ${mrtg_daemon_flags="--pid-file $mrtg_daemon_pidfile --lock-file /var/run/mrtg/lockfile --confcache-file /var/run/mrtg/confcache --user $mrtg_daemon_user --group $mrtg_daemon_group --daemon $mrtg_daemon_config"} start_precmd="mrtg_daemon_precmd" command="/usr/local/bin/mrtg" command_interpreter="/usr/local/bin/perl" pidfile=${mrtg_daemon_pidfile} mrtg_daemon_precmd() { rm -f /var/run/mrtg/lockfile /var/run/mrtg/confcache $mrtg_daemon_pidfile } run_rc_command "$1" >Fix: The following patch fixes this behaviour by adding the test for "[perl]" to the valid options:- --- /etc/rc.subr.orig Mon Oct 8 18:31:34 2007 +++ /etc/rc.subr Mon Oct 8 18:32:31 2007 @@ -271,5 +271,5 @@ _fp_args='_argv' _fp_match='case "$_argv" in - ${_interp}|"${_interp} "*|"${_interpbn}: ${_procname}"*)' + ${_interp}|"${_interp} "*|"[${_interpbn}]"|"${_interpbn}: ${_procname}"*)' else # a normal daemon _procnamebn=${_procname##*/} Patch attached with submission follows: --- /etc/rc.subr.orig Mon Oct 8 18:31:34 2007 +++ /etc/rc.subr Mon Oct 8 18:32:31 2007 @@ -271,5 +271,5 @@ _fp_args='_argv' _fp_match='case "$_argv" in - ${_interp}|"${_interp} "*|"${_interpbn}: ${_procname}"*)' + ${_interp}|"${_interp} "*|"[${_interpbn}]"|"${_interpbn}: ${_procname}"*)' else # a normal daemon _procnamebn=${_procname##*/} >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710081741.l98Hfx88018882>