RFC: support for re-sourcing /etc/rc.conf

Hiroki Sato hrs at FreeBSD.org
Mon Dec 2 19:07:08 UTC 2013


Colin Percival <cperciva at freebsd.org> wrote
  in <529CD535.5010903 at freebsd.org>:

cp> On 12/02/13 04:48, Hiroki Sato wrote:
cp> > Colin Percival <cperciva at freebsd.org> wrote:
cp> > cp> I'd like to commit the attached patch to /etc/rc.  When SIGALRM is received,
cp> > cp> it reloads /etc/rc.conf; this makes it possible for an rc.d script to perform
cp> > cp> first-boot system configuration and have it reflected by other rc.d scripts.
cp> > cp>
cp> > cp> In particular, this will allow me to provide EC2 user-data of
cp> > cp> 	>>/etc/rc.conf
cp> > cp> 	firstboot_pkgs_enable="YES"
cp> > cp> 	firstboot_pkgs_list="apache22"
cp> > cp> to an image with the sysutils/ec2-scripts and sysutils/firstboot-pkgs ports
cp> > cp> installed, and have a system running with apache22 installed moments later.
cp> >
cp> >  I am not familiar with sysutils/firstboot-pkgs and its use case, but
cp> >  is it correct that packages are installed during /etc/rc and then
cp> >  rc.conf will be updated before rc.d scripts for the installed
cp> >  packages run from /etc/rc?  Where and when SIGALRM is sent from?
cp>
cp> No, the other way around -- a different script (part of ec2-scripts) updates
cp> /etc/rc.conf based on metadata provided at VM launch time.  One use of this
cp> would be to set firstboot_pkgs_* variables to control the behaviour of the
cp> firstboot-pkgs port moments later in the boot process.
cp>
cp> So:
cp> 1. VM image is created with ec2-scripts and firstboot-pkgs installed.
cp> 2. VM image is launched with user-data saying "I want apache22".
cp> 3. Early in the boot process, ec2-scripts reads that user-data, updates
cp>    /etc/rc.conf, and signals /etc/rc.
cp> 4. /etc/rc re-sources /etc/rc.conf.
cp> 5. Later in the boot process, firstboot-pkgs (having the new /etc/rc.conf
cp>    settings loaded) installs the apache22 package.

 So, if I understand it correctly, the ec2-scripts add
 $firstboot_pkgs_enable and $firstboot_pkgs_list into /etc/rc.conf and
 then send a signal to /etc/rc, and then the firstboot-pkg script
 runs.  In this case, I think creating /etc/rc.conf.d/firstboot-pkg in
 ec2-scripts is simpler.  Sourcing /etc/rc.conf happens only once, but
 sourcing /etc/rc.conf.d/<name> happens every time when
 "load_rc_config <name>" is called.  If firstboot-pkgs calls
 load_rc_config, it should work as expected without sending a signal.

-- Hiroki
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-rc/attachments/20131203/22ef92a1/attachment.sig>


More information about the freebsd-rc mailing list