Date: Thu, 06 Dec 2012 15:50:30 -0600 From: Paul Schmehl <pschmehl_lists@tx.rr.com> To: Chris Rees <crees@FreeBSD.org> Cc: freebsd-rc@freebsd.org, FreeBSD Ports List <freebsd-ports@freebsd.org> Subject: Re: rc.subr questions Message-ID: <42524AACF8B3EE83929D0673@utd71538.campus.ad.utdallas.edu> In-Reply-To: <CADLo83_G2NrCU61MWfQC_Uos=Zp3SHEyrehFBqbLu-SuqCn2dA@mail.gmail.com> References: <DC59D265988CEDF1F3DC5C6D@utd71538.campus.ad.utdallas.edu> <CADLo838ty4_ryGLQo9h5Ze2oA0WXvX3Yc4vV9Ei9HjG0whLkfg@mail.gmail.com> <0FC50D96AC60C2D7BEFC786A@utd71538.campus.ad.utdallas.edu> <CADLo83_G2NrCU61MWfQC_Uos=Zp3SHEyrehFBqbLu-SuqCn2dA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--On December 6, 2012 9:30:04 PM +0000 Chris Rees <crees@FreeBSD.org> wrote: > On 6 December 2012 21:10, Paul Schmehl <pschmehl_lists@tx.rr.com> wrote: >> --On December 6, 2012 8:45:50 PM +0000 Chris Rees <crees@FreeBSD.org> >> wrote: >> >>> [CC rc@] >>> >>> On 6 December 2012 20:36, Paul Schmehl <pschmehl_lists@tx.rr.com> wrote: >>>> >>>> I'm trying to figure out how to get an rc.subr script to start and >>>> stop a script. >>>> >>>> This works from the commandline (to start it): >>>> tclsh /usr/local/bin/dir/script -D -c /usr/local/etc/conffile >>>> >>>> I've tried various combinations of: >>>> >>>> command_interpreter >>>> argument_precmd >>>> command_args >>>> >>>> but I keep getting this error: >>>> unknown directive '/usr/local/bin/sguil-sensor/pads_agent.tcl' >>>> >>>> Doesn't matter if I make that string the val for command and don't use >>>> command_interpreter or do use command_interpreter. >>>> >>>> I've read the man page over and over, but I'm clueless as to how to use >>>> run_rc_script, which I *think* is the right way to call this script. >>>> >>> >>> Make the script executable >> >> >> It is. >> >> >> , put a shebang in; #!/usr/bin/env tclsh >> >> Here's the current script's starting lines: >> >> # !/bin/sh >> # Run tcl from users PATH \ >> exec tclsh "$0" "$@" >>> >>> >>> # !/bin/sh >>> >>> >>> . /etc/rc.subr >>> >>> name=tclshexample >>> rcvar=tclshexample_enable >>> >>> load_rc_config $name >>> >>> : ${tclshexample_enable=YES} >>> >>> command="/usr/local/bin/dir/script" >>> command_interpreter=tclsh >>> command_args="-D -c /usr/local/etc/conffile" >>> >>> run_rc_command $@ >>> >>> http://www.bayofrum.net/~crees/scratch/tclshexample >>> >>> Would be much easier if you were to provide specifics or the actual >>> script :) >>> >>> Chris >>> >> >> Here's the rc script I'm working on. >> >> . /etc/rc.subr >> >> load_rc_config pads_agent >> >> # set defaults >> pads_agent_enable=${pads_agent_enable:-"NO"} >> pads_agent_conf=${pads_agent_conf:-"/usr/local/etc/sguil-sensor/pads_age >> nt.conf"} pads_agent_flags="${pads_agent_flags}:-"-D -c >> ${pads_agent_conf}" >> >> name="pads_agent" >> rcvar=pads_agent_enable >> >> command="/usr/local/bin/sguil-sensor/pads_agent.tcl" >> command_interpreter="tclsh" >> command_args=${pads_agent_flags} >> >> run_rc_command "$@" >> >> Here's the error I'm getting when I run start: >> >> /usr/local/etc/rc.d/pads_agent: WARNING: $command_interpreter tclsh != >> /bin/sh >> Starting pads_agent. >> /usr/local/etc/rc.d/pads_agent: WARNING: $command_interpreter tclsh != >> /bin/sh >> /usr/local/etc/rc.d/pads_agent: unknown directive >> '/usr/local/bin/sguil-sensor/pads_agent.tcl'. >> Usage: /usr/local/etc/rc.d/pads_agent >> [fast|force|one|quiet](start|stop|restart|rcvar|status|poll) >> /usr/local/etc/rc.d/pads_agent: WARNING: failed to start pads_agent >> >> I tried changing the interpreter to "/bin/sh" but I got the same error. >> >> Here's the perms on the script: >> >> # ls -lsa /usr/local/bin/sguil-sensor/pads_agent.tcl >> 12 -r-xr-xr-x 1 root wheel 11662 Dec 6 18:31 >> /usr/local/bin/sguil-sensor/pads_agent.tcl > > The problem is I think that the idiomatic tclsh syntax is to use the ># !/bin/sh shebang followed by some compat stuff... which doesn't play > nicely with rc's idea of how scripts should look. > > If instead we use procname, that should work better. > > http://www.bayofrum.net/~crees/scratch/tclshexample2 > > Does your tclsh script daemonise? It's supposed to, but it fails. Let's cease this discussion for now while I do some troubleshooting. I think I have bigger problems than just the rc.subr stuff, and I don't want to waste any more of your time. -- 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42524AACF8B3EE83929D0673>