Re: service doen't get started at boottime, but can start manually

From: Scot Hetzel <swhetzel_at_gmail.com>
Date: Sun, 7 Sep 2014 04:03:25 -0500
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.
Received on Sun Sep 07 2014 - 07:03:27 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:51 UTC