Date: Wed, 19 Dec 2012 22:47:56 +0000 From: Chris Rees <utisoft@gmail.com> To: Paul Schmehl <pschmehl_lists@tx.rr.com> Cc: FreeBSD RC List <freebsd-rc@freebsd.org>, FreeBSD Questions List <freebsd-questions@freebsd.org> Subject: Re: Can't get start_precmd to do *anything* Message-ID: <CADLo838-8gHKKdNSP74s=mGezyfuWrwEoiHUczdGvBd6Bv4fFQ@mail.gmail.com> In-Reply-To: <66E78C5BBEC1BC01C9A7E292@localhost> References: <66E78C5BBEC1BC01C9A7E292@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
On 19/12/2012, Paul Schmehl <pschmehl_lists@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@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@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-rc > To unsubscribe, send any mail to "freebsd-rc-unsubscribe@freebsd.org" > > -- Chris Rees | FreeBSD Developer crees@FreeBSD.org | http://people.freebsd.org/~crees
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLo838-8gHKKdNSP74s=mGezyfuWrwEoiHUczdGvBd6Bv4fFQ>