Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Feb 2008 02:32:04 +0000
From:      RW <fbsd06@mlists.homeunix.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: script to be executed on system startup.
Message-ID:  <20080210023204.2d5279bf@gumby.homeunix.com.>
In-Reply-To: <47ADEF6F.3050305@infracaninophile.co.uk>
References:  <1563a4fd0802060609j59451879h3920be790d7667c0@mail.gmail.com> <47A9FB98.4020907@bsdforen.de> <1563a4fd0802070549r71731883t9d606a2e62f67d4d@mail.gmail.com> <20080209174516.7f82a967@gumby.homeunix.com.> <47ADEF6F.3050305@infracaninophile.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 09 Feb 2008 18:22:39 +0000
Matthew Seaman <m.seaman@infracaninophile.co.uk> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> RW wrote:
> > On Thu, 7 Feb 2008 19:19:48 +0530
> > "navneet Upadhyay" <navneet.upadhyay@gmail.com> wrote:
> > 
> >> Hi,
> >>       After putting my script to /etc/rc.d , it gets executed at
> >> startup and the parameter passed to the script is *faststart .*
> >> *I want the same script to be executed when system shuts down , how
> >> can i do that.*
> > 
> > Don't put it in /etc/rc.d/, give it a .sh extension and put it
> > in /usr/local/etc/rc.d/. It will then get stop/start arguments.
> 
> No need to force it to have a .sh extension in /usr/local/etc/rc.d/
> nowadays.  In fact, rather the contrary as a .sh extension causes the
> script to be run in the context of the rc process rather than in a 
> sub-shell.
> 
> In FreeBSD 6.2+ /usr/local/etc/rc.d/ is totally integrated
> with /etc/rc.d and treated exactly the same.  The system re-runs
> rcorder over both of those directories once it has got to the stage
> of mounting all the critical filesystems.

There's a bit more to it than that I think. 

As I understand it, local scripts that contain a "# PROVIDE" line are
integrated into rcorder, local scripts  that don't have that line, but
end in .sh, are executed from  /etc/rc.d/localpkg in the old-style.
AFAIK local scripts that have neither are ignored.

So in short, a user script that simply responds to start/stop needs to
go /usr/local/etc/rc.d/, and it does need a .sh extension.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080210023204.2d5279bf>