Paul Schmehl wrote:
--On June 10, 2009 6:12:23 PM -0700 Drew Tomlinson <> wrote:

I installed a software named "urchin" on my FBSD 7.2 box.
Unfortunately, it didn't come with an rc.d script to automate startup
and shutdown.  And even more unfortunately, I can't seem to get my head
around the concepts in "Practical rc.d scripting in BSD"

This is the command that starts the app:


And here are the options:

Usage: urchinctl [-v] [-h] [-e] [-s|-w] [-p port] action
      -v  prints out the version of urchinctl
      -h  prints out this information
      -e  activates encryption (SSL) in the webserver
      -s  performs the action on the Urchin scheduler ONLY
      -w  performs the action on the Urchin webserver ONLY
      -p  specifies the port for the webserver to listen on

      action is either: start, stop, restart, or status

      start:   starts the webserver and scheduler
      stop:    stops the webserver and scheduler
      restart: stops and then starts the webserver and scheduler
status: prints out whether the webserver and scheduler are running

   By default, the action is performed on both the webserver and the
   schedulers unless the -s or -w options are specified

All I want to do is create a script within the rc.d framework that runs
"/usr/local/urchin/bin/urchinctl start" when the system boots and
"/usr/local/urchin/bin/urchinctl stop" when the system shuts down.

Following the examples in the guide mentioned above, here is my attempt
at that file:

# !/bin/sh
# PROVIDE: urchin
# KEYWORD: shutdown
# Add the following line to /etc/rc.conf to enable urchin:
# urchin_enable="YES" (bool):   Set to "NO" by default.
#                               Set it to "YES" to enable urchin.
. /etc/rc.subr
command="/usr/local/urchin/bin/urchinctl "
eval "${rcvar}=\${${rcvar}:-'NO'}"
load_rc_config $name
run_rc_command "$1"

I have also ensured that 'urchin_enable="YES"' is in /etc/rc.conf.
However when I run the rc.d script, the urchinctl appears to run but
doesn't like whatever arguments that are passed.  See this output:

urchin# ./urchin-server start
Starting urchin.

Usage: urchinctl [-v] [-h] [-e] [-s|-w] [-p port] action
<snipped rest of options already shown above>

I'm sure I'm missing some simple concept.  I'd really appreciate a kick
in the right direction.

Where is urchin located? /usr/local/bin? /usr/local/bin/urchin/bin? Or somewhere else? Is urchinctl a shell or perl script?
There is no actual "urchin" as far as I know. The control file is /usr/local/urchin/bin/urchinctl. It is a executable file:

urchin# file /usr/local/urchin/bin/urchinctl
/usr/local/urchin/bin/urchinctl: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, stripped

After running "/usr/local/urchin/bin/urchinctl start", I have these related processes:

urchin# ps acux | grep urchin
root    70937  0.0  0.0  3184  1996  ??  Ss    7:00PM   0:00.01 urchinwebd
nobody  70938  0.0  0.0  3184  2000  ??  I     7:00PM   0:00.00 urchinwebd
nobody  70939  0.0  0.0  3184  2000  ??  I     7:00PM   0:00.00 urchinwebd
nobody  70940  0.0  0.0  3184  2000  ??  I     7:00PM   0:00.00 urchinwebd
nobody  70941  0.0  0.0  3184  2000  ??  I     7:00PM   0:00.00 urchinwebd
nobody  70942  0.0  0.0  3184  2000  ??  I     7:00PM   0:00.00 urchinwebd
nobody  70944  0.0  0.0  1460   720  ??  Ss    7:00PM   0:00.03 urchind
nobody  70946  0.0  0.0  1332   668  ??  Is    7:00PM   0:00.51 urchind

And conversely, "/usr/local/urchin/bin/urchinctl stop" removes all of the above processes.



Be a Great Magician!
Visit The Alchemist's Warehouse

_______________________________________________ mailing list
To unsubscribe, send any mail to ""

Reply via email to