Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 06 Dec 2012 15:10:40 -0600
From:      Paul Schmehl <pschmehl_lists@tx.rr.com>
To:        Chris Rees <crees@FreeBSD.org>, Paul Schmehl <pschmehl_lists@tx.rr.com>, freebsd-rc@freebsd.org
Cc:        FreeBSD Ports List <freebsd-ports@freebsd.org>
Subject:   Re: rc.subr questions
Message-ID:  <0FC50D96AC60C2D7BEFC786A@utd71538.campus.ad.utdallas.edu>
In-Reply-To: <CADLo838ty4_ryGLQo9h5Ze2oA0WXvX3Yc4vV9Ei9HjG0whLkfg@mail.gmail.com>
References:  <DC59D265988CEDF1F3DC5C6D@utd71538.campus.ad.utdallas.edu> <CADLo838ty4_ryGLQo9h5Ze2oA0WXvX3Yc4vV9Ei9HjG0whLkfg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--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_agent.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
-- 
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?0FC50D96AC60C2D7BEFC786A>