--On December 17, 2012 11:30:38 AM -0700 Ian Lepore
<[email protected]> wrote:
On Mon, 2012-12-17 at 11:43 -0600, Paul Schmehl wrote:
--On December 17, 2012 10:17:12 AM -0700 Ian Lepore
<[email protected]> wrote:
> On Mon, 2012-12-17 at 10:50 -0600, Paul Schmehl wrote:
>> Since I maintain three ports (security/sguil-server,
>> security/sguil-sensor and security/sguil-client) that have this
>> problem, I decided to start with the server port. The current port
>> version is 0.7.0 and the init script worked fine when I submitted the
>> port a while ago. Here it is:
>
> I can't answer the part about why it used to work and now it doesn't,
> but in general that doesn't look like a modern rc script that starts
> and stops a daemon.
>
> Someone had a similar problem with a simple solution in the past...
>
> http://lists.freebsd.org/pipermail/freebsd-questions/2010-October/2223
> 54. html
>
Unfortunately, that doesn't work for me. Here's the current script:
. /etc/rc.subr
name="sguild"
load_rc_config ${name}
# set some defaults
sguild_enable=${sguild_enable:-"NO"}
sguild_conf=${sguild_conf:-"/usr/local/etc/sguild/sguild.conf"}
sguild_pid=${sguild_pid:-"/var/run/sguild/sguild.pid"}
sguild_flags=${sguild_flags:-"-D -P ${sguild_pid}"}
sguild_user=${sguild_user:-"sguil"}
command="/usr/local/bin/${name}"
command_args="-c ${sguild_conf} ${sguild_flags}"
procname="/usr/local/bin/tclsh8.5"
start_cmd="sguild_start"
sguild_start(){
echo "starting sguild."
/bin/sh ${command} ${command_args}
}
run_rc_command "$1"
When I run start, I get this:
# /usr/local/etc/rc.d/sguild start
starting sguild.
/usr/local/etc/rc.d/sguild: unknown directive '/usr/local/bin/sguild'.
Usage: /usr/local/etc/rc.d/sguild
[fast|force|one|quiet](start|stop|restart|rcvar|status|poll)
Status and stop work fine.
The "unknown directive is coming from line 913 in rc.subr:
echo 1>&2 "$0: unknown directive '$rc_arg'."
rc_usage $_keywords
# not reached
rc_arg is (fast|force|one|quiet)(start|stop|restart|rcvar|status|poll).
This error:
/usr/local/etc/rc.d/sguild: unknown directive '/usr/local/bin/sguild'.
Seems to indicate that the rc.subr script thinks $0 is
/usr/local/bin/sguild rather than /usr/local/etc/rc.d/sguild, which is
odd to me.
Does running with rc_debug=YES provide any extra clues?
Not really:
# /usr/local/etc/rc.d/sguild start
/usr/local/etc/rc.d/sguild: DEBUG: checkyesno: sguild_enable is set to YES.
Starting sguild.
/usr/local/etc/rc.d/sguild: DEBUG: run_rc_command: doit: su -m sguil -c 'sh
-c "/usr/local/bin/sguild -D -P /var/run/sguild/sguild.pid "'
/usr/local/etc/rc.d/sguild: unknown directive '/usr/local/bin/sguild'.
Usage: /usr/local/etc/rc.d/sguild
[fast|force|one|quiet](start|stop|restart|rcvar|status|poll)
/usr/local/etc/rc.d/sguild: WARNING: failed to start sguild
The key to the problem is the unknown directive error. For some reason
rc.subr thinks the script it's trying to start is /usr/local/bin/sguild
instead of /usr/local/etc/rc.d/sguild.
I just can't figure out why it thinks that.
--
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]"