Can't get start_precmd to do *anything*
Chris Rees
utisoft at gmail.com
Wed Dec 19 22:48:04 UTC 2012
On 19/12/2012, Paul Schmehl <pschmehl_lists at tx.rr.com> wrote:
> I'm working on an rc.d init script for a port, and I am clearly in need of
> a clue.
>
> I have a daemon that requires that a FIFO exist before it will start. The
> FIFO is defined in the daemon's conf file. I could just point that out to
> the user using "warn", but I thought it would be nicer to simply take care
> of it programmatically.
>
> So I created this:
>
> start_precmd="${name}_ck4fifo()"
Is this a copy/paste error, or is your function actually called
_ck4fifo or _ch4fifo?
> ${name}_ch4fifo()
I'm surprised sh isn't choking on this, you can't use ${name} in a
function name. Indirecting it is a waste of processing time, if I'm
honest; just use
start_precmd=pads_agent_prestart
pads_agent_prestart()
{
do_something
}
We always have search and replace in case you choose to modify $name :)
Chris
> {
> . ${pads_agent_conf}
> echo "Checking to see if ${PADS_FIFO} exists......"
> if [ ! -p ${PADS_FIFO} ]; then
> echo "${PADS_FIFO} did not exist. Creating it now....."
> `/usr/bin/mkfifo ${PADS_FIFO}
> else
> echo "${PADS_FIFO} already exists."
> fi
> }
>
> When I run the init script with rc_debug enabled, it calls the
> start_precmd, but absolutely nothing happens. I don't even get the echos.
>
> # /usr/local/etc/rc.d/pads_agent onestart
> /usr/local/etc/rc.d/pads_agent: DEBUG: checkyesno: pads_agent_enable is set
>
> to YES.
> /usr/local/etc/rc.d/pads_agent: DEBUG: run_rc_command: start_precmd:
> pads_agent_ck4fifo()
> Starting pads_agent.
> /usr/local/etc/rc.d/pads_agent: DEBUG: run_rc_command: doit:
> /usr/local/bin/sguil-sensor/pads_agent.tcl -D -c
> /usr/local/etc/sguil-sensor/pads_agent.conf
> [root at buttercup4 /usr/ports/security/sguil-sensor-update/sguil-sensor]#
> Error: Unable to read
> /var/data/nsm/sguil-sensor/buttercup4.utdallas.edu/pads.fifo
>
> I even tried this but got the same result.
>
> ${name}_ch4fifo()
> {
> warn "You must create PADS_FIFO before starting ${name}."
> warn "Set PADS_FIFO in the ${pads_agent_conf} file."
> }
>
> The warn messages aren't in the messages file either, which is expected
> behavior.
>
> What the heck is going on here? Is something wrong with rc.subr on this
> host? Am I missing something?
>
> --
> Paul Schmehl, Senior Infosec Analyst
> As if it wasn't already obvious, my opinions
> are my own and not those of my employer.
> *******************************************
> "It is as useless to argue with those who have
> renounced the use of reason as to administer
> medication to the dead." Thomas Jefferson
> "There are some ideas so wrong that only a very
> intelligent person could believe in them." George Orwell
>
> _______________________________________________
> freebsd-rc at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-rc
> To unsubscribe, send any mail to "freebsd-rc-unsubscribe at freebsd.org"
>
>
--
Chris Rees | FreeBSD Developer
crees at FreeBSD.org | http://people.freebsd.org/~crees
More information about the freebsd-questions
mailing list