From owner-freebsd-questions@FreeBSD.ORG Tue Sep 21 13:38:22 2004 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ED54E16A4CE for ; Tue, 21 Sep 2004 13:38:21 +0000 (GMT) Received: from colossus.systems.pipex.net (colossus.systems.pipex.net [62.241.160.73]) by mx1.FreeBSD.org (Postfix) with ESMTP id C6BA443D49 for ; Tue, 21 Sep 2004 13:38:20 +0000 (GMT) (envelope-from mark.cullen@dsl.pipex.com) Received: from laptop (81-178-127-34.dsl.pipex.com [81.178.127.34]) by colossus.systems.pipex.net (Postfix) with SMTP id EBCD51C00163; Tue, 21 Sep 2004 14:38:16 +0100 (BST) Message-ID: <023501c49fe0$9b19da70$f800000a@laptop> From: "Markie" To: "Giorgos Keramidas" References: <01bb01c49f69$48c66300$f800000a@laptop> <20040921093647.GC4451@orion.daedalusnetworks.priv> <022001c49fdd$714ac1d0$f800000a@laptop> <20040921132448.GA43059@orion.daedalusnetworks.priv> Date: Tue, 21 Sep 2004 14:40:44 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 cc: freebsd-questions@freebsd.org Subject: Re: reload rc.conf during boot process X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Sep 2004 13:38:22 -0000 ----- Original Message ----- From: "Giorgos Keramidas" To: "Markie" Cc: Sent: Tuesday, September 21, 2004 2:24 PM Subject: Re: reload rc.conf during boot process | On 2004-09-21 14:18, Markie wrote: | > "Giorgos Keramidas" wrote: | > | > After running my program in the rc.d mount script I then did a | > | > | > | > . /etc/rc.conf | > | > | > | > but rc.conf doesn't get reloaded. | > | | > | The /etc/rc script is a ``driver script'' that loads rc.conf before teh | > | mount script has a chance to run. Even if you reload rc.conf in the | > | mountd script this cannot affect the parent process that runs /etc/rc. | > | > Oh I think I see what you're saying, it's kind of like variable scope, | > right? When I do . /etc/rc.conf in mountcritlocal that's loading the file, | > but only for that script? It's not actually replacing the variables at all, | > right? | | They're environment variables and that's how environment variables work in | UNIX. Environment variables can be changed in a process and this will affect | all the processes spawned off by the one with the changed environment but it | won't affect processes higher up the hierarchy. | | The `/etc/rc' script starts `/etc/rc.d/mountd' after setting some of these | variables (by running . /etc/rc.conf as usual). The mountd process inherits | the environment of /etc/rc and can make changes to its environment as much as | it wants. The changes don't affect the parent process (the /etc/rc | invocation). | That's basically what I was trying to say :-) I didn't know environment variables worked like that though, thanks for the info! | > I saw load_rc_config 'XXX' in early.sh or something, just a minute ago! | > Does the XXX do anything? | | Not much. It's just a placeholder to shuttup the checks near the beginning of | `load_rc_config'. Passing an invalid `command name' to load_rc_config lets us | load /etc/rc.conf and any other config file listed in "$source_rc_confs" | without having to re-invent load_rc_config every time. | Alright, fair play! | > I don't actually have rc.conf.d either, as far as I can tell? | | This shouldn't be a problem. Don't worry about it. | | > My idea was so I could try out FreeBSD on my laptop and keep it usable on | > the University network, [...] | | Yeah, I figured it was something of this sort :) | :-) it also gives me something to try and learn. It was good fun actually hacking up my first, possibly semi-useful, small little program in C! Now I know a little bit about how the RC scripts work too! It's pretty amazing what shell script programming can do! I was just looking at that diff you attached. I think I understand it near enough, but just before the esac is that like a default: style part? So if nothing matches, i.e if the script isn't called selectcf, then it'll just run the script and not reload rc.conf? Wouldn't I need a run_rc_script before the unset _rc_conf_loaded, to actually run my selectcf script? :-) | - Giorgos | Thanks for the super quick reply!