Help With rc.d Script

Drew Tomlinson drew at mykitchentable.net
Thu Jun 11 02:09:35 UTC 2009


Paul Schmehl wrote:
> --On June 10, 2009 6:12:23 PM -0700 Drew Tomlinson 
> <drew at mykitchentable.net> 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"
>> (http://www.freebsd.org/doc/en/articles/rc-scripting/rcng-daemon.html).
>>
>> This is the command that starts the app:
>>
>> /usr/local/urchin/bin/urchinctl
>>
>> And here are the options:
>>
>> Usage: urchinctl [-v] [-h] [-e] [-s|-w] [-p port] action
>>    where:
>>       -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
>> # REQUIRE: NETWORKING
>> # 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
>> name="urchin"
>> rcvar=`set_rcvar`
>> 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.

Thanks,

Drew



-- 
Be a Great Magician!
Visit The Alchemist's Warehouse

http://www.alchemistswarehouse.com



More information about the freebsd-questions mailing list