--On December 6, 2012 9:30:04 PM +0000 Chris Rees <[email protected]> wrote:
On 6 December 2012 21:10, Paul Schmehl <[email protected]> wrote:
--On December 6, 2012 8:45:50 PM +0000 Chris Rees <[email protected]>
wrote:
[CC rc@]
On 6 December 2012 20:36, Paul Schmehl <[email protected]> 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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-rc
To unsubscribe, send any mail to "[email protected]"