service doen't get started at boottime, but can start manually
Scot Hetzel
swhetzel at gmail.com
Sun Sep 7 09:03:27 UTC 2014
On Sun, Sep 7, 2014 at 3:39 AM, Scot Hetzel <swhetzel at gmail.com> wrote:
> I had a look at scripts/refdb.in, it is not a proper rc script for
> FreeBSD, as it is missing several keywords:
>
> # PROVIDE: <- all scripts need this
> # REQUIRE:
> # BEFORE:
> # KEYWORD: <- optional
>
> Which tells rcorder where to put refdb in the startup order. Since
> these are missing, rcorder doesn't place it in the startup list.
>
I looked again, and it is not rcorder, it's /etc/rc and /etc/rc.subr
that determine which script to run.
/etc/rc calls find_local_scripts_new from /etc/rc.subr.
find_local_scripts_new checks each rc script to make sure that they
have at least a "# PROVIDE: " keyword. If it does, then it adds that
script to ${local_rc}. Then /etc/rc runs:
files=`rcorder /etc/rc.d/* ${local_rc}`
to get the startup order for these scripts. Then /etc/rc starts the
scripts in the proper order.
Since, /usr/local/etc/rc.d/refdb{,.sh.dist} is missing the "# PROVIDE:
", the script is skipped on startup.
Since, rc.d/refdb is not a proper rc script, adding refdb_enable=YES
to /etc/rc.conf{,.local} will not control the starting of this script.
Someone should fix service, so that it checks the rc script has a "#
PROVIDE: ", and displays an error message if it doesn't.
--
DISCLAIMER:
No electrons were maimed while sending this message. Only slightly bruised.
More information about the freebsd-current
mailing list