From owner-freebsd-bugs@FreeBSD.ORG Mon Oct 8 17:50:02 2007 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4E34816A474 for ; Mon, 8 Oct 2007 17:50:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 2F1B113C457 for ; Mon, 8 Oct 2007 17:50:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l98Ho2wa010587 for ; Mon, 8 Oct 2007 17:50:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l98Ho28n010585; Mon, 8 Oct 2007 17:50:02 GMT (envelope-from gnats) Resent-Date: Mon, 8 Oct 2007 17:50:02 GMT Resent-Message-Id: <200710081750.l98Ho28n010585@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Steven Hartland Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A25A116A419 for ; Mon, 8 Oct 2007 17:41:59 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 7FC7113C481 for ; Mon, 8 Oct 2007 17:41:59 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.1/8.14.1) with ESMTP id l98Hfxno018883 for ; Mon, 8 Oct 2007 17:41:59 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.1/8.14.1/Submit) id l98Hfx88018882; Mon, 8 Oct 2007 17:41:59 GMT (envelope-from nobody) Message-Id: <200710081741.l98Hfx88018882@www.freebsd.org> Date: Mon, 8 Oct 2007 17:41:59 GMT From: Steven Hartland To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: conf/117027: rc.subr doesnt deal with perl daemons X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 17:50:02 -0000 >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: