problems with a rc.d script I'm creating

Mel fbsd.questions at rachie.is-a-geek.net
Sun Sep 2 03:22:32 PDT 2007


On Sunday 02 September 2007 05:17:08 Jim Stapleton wrote:
> I'm trying to create an rc.d script to start akpop3d (it doesn't seem
> to come with one).
>
> According to the documentation on run_rc_command in /etc/rc.subr, I
> thought this should work. However I get no response when I run
> '/usr/local/etc/rc.d/akpop3d start', and ps -A doesn't show an akpop3d
> process. When I run it manually (akpop3d -d -s -L .akpop3d), it starts
> just fine.
>
> Could anyone suggest what I am missing here?
>
> Thanks,
> -Jim Stapleton
>
> The script:
>
> #!/bin/sh
> #
> # $FreeBSD: N/A
> #
> # PROVIDE: akpop3d
> # REQUIRE: DAEMON
> #
> # Add the following line to /etc/rc.conf to enable akpop3d:
> #
> # akpop3d_enable="YES"
> #
>
>
> akpop3d_enable=${akpop3d_enable-"NO"}
> akpop3d_pidfile=${akpop3d_pidfile-"/var/run/akpop3d.pid"}
> akpop3d_flags=${akpop3d_flags-"-d -s -L .akpop3d"}
> akpop3d_conffile=${akpop3d_conffile-""}
> akpop3d_flush_cache=${akpop3d_flush_cache-"NO"}
>
> . /etc/rc.subr
>
>
> if [ ! -z $(check_pidfile $akpop3d_pidfile akpop3d) ]
> then
>
> else
>
> fi
>
> name=akpop3d
> rcvar=`set_rcvar`
>
> command=/usr/local/bin/${name}
> pidfile=${akpop3d_pidfile}
> #start_precmd=akpop3d_precmd
>
> load_rc_config ${name}
>
>
>
> run_rc_command "$1"

I haven't figured out the proper way myself, but the problem is that the 
defaults you set at top, override the rc.conf variables, because they don't 
exist yet. What I do is move load_rc_config before setting defaults. General 
order becomes:
name=foo
rcvar=`set_rcvar`
load_rc_config ${name}
foo_default=${foo_default:-"default value"}
run_rc_command "$1"

Seems to work, maybe I'll figure out the proper way once I finish reading:
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/rc-scripting/index.html


-- 
Mel

People using reply to all on lists, must think I need 2 copies.


More information about the freebsd-questions mailing list