rc script timing issues?

Peter Risdon peter at circlesquared.com
Wed Mar 10 00:54:52 PST 2004


Peter Risdon wrote:

> Shaun T. Erickson wrote:
>
>> On 5.2.1-RELEASE-p1, in /usr/local/etc/rc.d, I have scripts that 
>> start my MySQL database, and that start my Courier-IMAP daemons. When 
>> the scripts for courier run, one of the first things they do is start 
>> authdaemond, which should fire up several authdaemond.mysql processes 
>> and then they start the imap daemons.
>>
>> On reboot, the imap daemons are running, but the authdaemond.mysql 
>> processes aren't. If I stop the imap script, and re-run it, 
>> everything starts up just fine.
>>
>> I suspect that the database isn't getting started before the imap 
>> scripts are run. So, I moved the database startup script to 
>> /etc/rc.d, but on reboot, the database wasn't started. I had hoped 
>> moving it to /etc/rc.d might start it earlier in the boot process.
>>
>> Suggestions? TIA.
>
>
> From man 8 rc.d:
>
>         The scripts within each directory are executed in lexicographical
>         order.  If a specific order is required, numbers may be used as a
>         prefix to the existing filenames, so for example 100.foo would be
>         executed before 200.bar; without the numeric prefixes the 
> opposite
>         would be true.
>
> You might be able to see this if you've installed, say, mysql-client 
> which uses a script in /usr/local/etc/rc.d called 000.mysql-client.sh 
> - the 000. forces an early startup. So I suggest you're better off 
> moving the scripts back to /usr/local/etc/rc.d and prefixing them with 
> numerals to get the startup order correct.

One small note - the startup script for mysql-client is prefixed with 
000. but the one for mysql-server is not prefixed by a numeral. The 
mysql client has to start before the server. You'll need to prefix 
mysql-server.sh with a numeral but it must be > 000.

PWR.



More information about the freebsd-questions mailing list