Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jul 2005 18:10:45 -0500
From:      Paul Schmehl <pauls@utdallas.edu>
To:        freebsd-rc@freebsd.org
Subject:   Re: New port startup script fails
Message-ID:  <B858D08121B1B491F0217584@utd59514.utdallas.edu>
In-Reply-To: <20050721230123.GA19090@odin.ac.hmc.edu>
References:  <468B58E789145A1C6885EA66@utd59514.utdallas.edu> <20050721230123.GA19090@odin.ac.hmc.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
--On Thursday, July 21, 2005 16:01:23 -0700 Brooks Davis 
<brooks@one-eyed-alien.net> wrote:

> On Thu, Jul 21, 2005 at 05:50:12PM -0500, Paul Schmehl wrote:
>> I'm working on a new port, and I decided to use the new rc.subr type
>> startup script.  After I wrote the script, I started testing it.  The
>> program started fine, but neither stop nor status worked.  I read man
>> (8)  rc.subr and studied the script (/etc/rc.subr).
>>
>> The program was creating a pid file with the correct name in /var/run,
>> but  for some reason, the stop and status commands apparently couldn't
>> find?  read? the file.  Is there a way to troubleshoot this problem to
>> pin down  exactly were the problem is?
>
> Far too many things could be wrong for us to do more than speculate.
> Please send the script in question.
>
Here it is:  (%%SGUILDIR%% is converted to sguil-server in the Makefile)

#!/bin/sh

# PROVIDE: sguild
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: FreeBSD shutdown

# Add the following lines to /etc/rc.conf to enable sguild:
# sguild_enable (bool):         Set to YES to enable sguild
#                               Default: NO
# sguild_flags (str):           Extra flags passed to sguild
#                               Default: -D
# sguild_conf (str):            Sguild configuration file
#                               Default: 
%%PREFIX%%/etc/%%SGUILDIR%%/sguild.conf
#

. %%RC_SUBR%%

name="sguild"
rcvar=`set_rcvar`

command="%%PREFIX%%/bin/%%SGUILDIR%%/sguild"

load_rc_config $name

[ -z "$sguild_enable" ]    && sguild_enable="NO"
[ -z "$sguild_conf" ]      && 
sguild_conf="%%PREFIX%%/etc/%%SGUILDIR%%/sguild.conf"
[ -z "$sguild_flags" ]     && sguild_flags="-D"

[ -n "$sguild_conf" ]      && sguild_flags="$sguild_flags -c $sguild_conf"

run_rc_command "$1"

> A couple of ideas.  First, are you setting the pidfile variable?

No.  I can, but by default it is set to /var/run/sguild.pid.

>  If not, you may need to.

Since $name is sguild, wouldn't the pid be sguild.pid?

>  Second, does the program in question change it's
> name?  If so, you may have to implement stop and status by hand.

I'm not sure I understand what you mean here.  However, there *is* one 
oddity.  When the program is running, ps shows the command to be "tclsh8.4 
/usr/local/bin/sguil-server/sguild -D -c 
/usr/local/etc/sguil-server/sguild.conf".

Maybe that's the problem?  (I thought, since the pidfile was known that it 
wouldn't matter.)

Paul Schmehl (pauls@utdallas.edu)
Adjunct Information Security Officer
University of Texas at Dallas
AVIEN Founding Member
http://www.utdallas.edu/ir/security/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B858D08121B1B491F0217584>