Help With rc.d Script -- SOLVED

Paul Schmehl pauls at
Thu Jun 11 22:07:49 UTC 2009

--On Thursday, June 11, 2009 08:45:59 -0500 Drew Tomlinson 
<drew at> wrote:
> The problem here is that urchinctl does not write a pid file by default
> and I can't figure out how to make it do so.
> However in reading man rc.subr, I found argument_cmd that works for me.
> By setting argument_cmd, I can override the default methods called by
> run_rc_command.  Thus I set these three lines:
> start_cmd="/usr/local/urchin/bin/urchinctl start"
> stop_cmd="/usr/local/urchin/bin/urchinctl stop"
> status_cmd="/usr/local/urchin/bin/urchinctl status"
> Originally, I used "$1" instead of start, stop, and status.  However
> this had the effect of making "restart" restart twice, once for the
> start method and once for the stop method because
> "/usr/local/urchin/bin/urchinctl restart" was being run each time.
>> If that does work, your script should at least be able to report the
>> status (running or not).
> I also had to set the procname variable to make the status method
> available.  In my case, it didn't matter to what it was set as the
> urchinctl command handled the actual status reporting.
>> I'm assuming that, because root is running the lowest numbered
>> process, killing that process will kill all the children as well.
> Killing the root process killed all the urchinwebd processes but left
> the urchind processes hanging around.  But no matter, I got things working.

Drew, I'm glad you were able to get it working.  There may be a way to kill the 
urchind processes as well.   If you set procname to urchin, the rc.subr script 
might understand that to mean any process that begins with that string.  I 
haven't tested it, but looking at the script (/etc/rc.subr), it appears to me 
to be the case.  If that doesn't work, perhaps procname urchin* would.

Paul Schmehl (pauls at
Senior Information Security Analyst
The University of Texas at Dallas

More information about the freebsd-questions mailing list