Date: Mon, 15 May 2006 18:55:37 -0300 From: Duane Whitty <duane@greenmeadow.ca> To: Mike Jakubik <mikej@rogers.com> Cc: ports@FreeBSD.org Subject: Re: freeradius starts before mysql Message-ID: <4468F8D9.7070204@greenmeadow.ca> In-Reply-To: <4468C011.2080404@rogers.com> References: <446696B7.1070009@rogers.com> <4466C4F3.6000101@greenmeadow.ca> <4468C011.2080404@rogers.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Jakubik wrote: > Duane Whitty wrote: >> Hi Mike, >> >> Sorry for my earlier botched attempt :) >> >> I verified that according to rc(8) scripts in >> /usr/local/etc/rc.d are processed in alphabetical >> order (lexicographical is the word I couldn't recall originally). >> >> I did some testing. >> >> I created a script /usr/local/etc/rc.d/xxxserver >> >> with the lines >> >> # PROVIDE: xxxserver >> # REQUIRE: NETWORKING SERVERS >> # BEFORE: DAEMON >> # KEYWORD: shutdown >> >> and I modified /usr/local/etc/rc.d/mysql-server with >> >> # REQUIRE: xxxserver >> # BEFORE: DAEMON >> >> >> With this I caused xxxserver to run before mysql. >> >> It doesn't -- seem -- to adversely effect mysql to start earlier >> in the boot sequence than it normally would >> >> I did test all of the above with a reboot. >> >> >> >> If in /usr/local/etc/rc.d/freeradius you change # REQUIRE: NETWORKING >> SERVERS to >> >> REQUIRE: mysql >> >> and in /usr/local/etc/rc.d/mysql-server you change >> >> # REQUIRE: LOGIN to # REQUIRE: NETWORKING SERVERS >> and add >> >> # BEFORE: DAEMON >> >> Then mysql should get started before freeradius. >> >> I'd test this out for you but as I said in my earlier off-list message >> I don't have freeradius installed. > > Thanks for the info. I will try the second method. But im finding this > rcNG stuff a little weird. If application A provides X, and > application B requires X, shouldn't A always start before B? If not, > them my understanding of "require" and "provide" is flawed i guess... > Hi, No, I don't think your understanding is flawed. The one thing you didn't seem to take into consideration is #BEFORE: When I was reading rc(8), I interpreted the LOGIN script as being a "divider" script that is called quite late. Since the MySQL script requires LOGIN it seems it doesn't start until late in the boot process. I have verified that MySQL was the last thing starting on my system if I remember correctly. REQUIRE seems to work within in a specific "script space". All scripts that REQUIRE the same "things" seem to start in alphabetical order. I'm not sure what the point in specifying # REQUIRE: NETWORKING SERVERS is: It looks to me like SERVERS runs after NETWORKING which makes specifying NETWORKING redundant. Maybe someone working on rcNG could make a more authoritative response though. Maybe the reason putting # REQUIRE: mysql is not working is that to do so MySQL would have to start earlier. But the installed script instructs MySQL to wait for LOGIN to run. My SQL can start earlier than this though with -- apparently -- no ill side effects. In rc(8) the order of the "divider" scripts is NETWORKING, SERVERS, DAEMON, and LOGIN FreeRadius is told to start before DAEMON and after SERVERS so instead tell it to start before DAEMON but after MySQL. It seems to me that in the freeradius script that # REQUIRE: mysql # BEFORE: DAEMON should work and in the mysql script # REQUIRE: SERVERS # BEFORE: DAEMON should work. Best Regards, Duane Whitty -- duane@greenmeadow.ca
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4468F8D9.7070204>