Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Alter startup items loading order System
I found a way to alter the startup list loading order. In both Library -> StartupItems and System -> Library -> StartupItems, each function has its own StartupItems.plist. For example:
% cd /System/Library/StartupItems
% cd Cleanup
% cat StartupParameters.plist
{
Description = "system cleanup";
Provides = ("Cleanup");
OrderPreference = "Early";
Messages =
{
start = "Cleaning up";
stop = "Cleaning up";
};
}
The OrderPreference flag controls the startup order. I've seen three entries so far: "Early", "Late", and "Last". Brickhouse uses "Last" by default. Bind appears to kick in late and npt early by default.

I wanted to switch these because npt was asking for a DNS resolution before Bind was up and running.
    •    
  • Currently 1.00 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (1 vote cast)
 
[10,664 views]  

Alter startup items loading order | 10 comments | Create New Account
Click here to return to the 'Alter startup items loading order' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Documentation
Authored by: serres on May 22, '02 10:16:34AM

see here:

http://www.opensource.apple.com/projects/documentation/howto/html/SystemStarter_HOWTO.html

and here:

http://developer.apple.com/techpubs/macosx/Essentials/SystemOverview/BootingLogin/Customization_Techniques.html

for a in-depth description of startupitems.



[ Reply to This | # ]
Provides and Requires Tags
Authored by: cyber.sonik on May 22, '02 12:09:53PM

What's missing from your plists are the Provides and Requires tags that specify dependencies. Using these should allow the SystemStarter to resolve the correct load order with the OrderPreference being used as a guide.



[ Reply to This | # ]
Interesting...
Authored by: robg on May 22, '02 12:13:14PM

Interesting as those are the default startup scripts that came on my iBook -- I added them to the article to help clarify what was being discussed. Why would those things be missing from a script that was provided by the stock 10.1 install?

-rob.



[ Reply to This | # ]
Caution
Authored by: osxpez on May 22, '02 12:19:18PM
I would advice you to take great caution when altering the startup ordering of things. But since you have identified what is missing when ntp is starting you should instead add a row something like:
    Requires = ("Resolver");
to the plist-file. This should tell the System starter to hold ntp startup until Bind is up (I think the Bind startup plist lists "Resolver" as the service it Provides).

[ Reply to This | # ]
attributes
Authored by: Anonymous on May 22, '02 01:16:57PM

according to the developers documentation there are;

\"OrderPreference attribute

The OrderPreference attribute is an enumeration indicating the general time period during startup the bundle prefers to execute. This attribute is less significant in determining the execution order of bundles than the Requires and Uses attributes.

Possible values for this attribute are First, Early, None (default), Late, Last.\"



[ Reply to This | # ]
Timing
Authored by: Neal on May 22, '02 06:46:31PM

Is there a way to time delay a specific app from loading until after a driver is loaded?

I have a problem with the Alcatel DSL Modem driver; it takes quite a while to wake up from booting. When the system is booted to the desktop the driver loads way (say 45 secs) after the last startup app has launched, and as the Vicomsoft Internet Gateway "Server" app loads before the Alcatel Driver (I tried to make it run as a start-up app) it cannot subsequently connect to the internet.

I have to manually Boot, wait for all the startup apps to launch then sit and wait 30-40 secs for the Alcatel Drivers to wake-up then manually start the Vicomsoft Server. This is a pain to have to do regularly as I have only a 20-30 sec window in which to get the server running if I go beyond this time before launching the Server App I have to reboot the Mac (I can't just log-out it has to be a full re-boot!).

Any assistance would be much appreciated as I am not a developer.

Thanks!
Neal



[ Reply to This | # ]
Timing
Authored by: osxpez on May 23, '02 01:14:52AM

Sounds to me like that Alcatel Driver is crap! Or something in it's configuration is wrong. I would start with the support for that modem. Doesn't it have an Ethernet connection by the way?



[ Reply to This | # ]
Easy solution
Authored by: Lucky_Strike on May 23, '02 08:39:22AM

"I wanted to switch these because npt was asking for a DNS resolution before Bind was up and running."

I presume that you were seeing a pause at start up because of this - well if so then the easy way around it is to put the IP of the ntp server into the Network Time prefs panel. The Euro server is 17.72.133.54 you can ping the names to get the rest. Simply highlight any of the names and type the IP in place of it. It'll stick but won't appear as an option in the pull-down list. I suspect that there's a plist somewhere for the names that appear anyway. The result is that at start up ntp doesn't need to resolve the name so doesn't have to wait for bind.

LS



[ Reply to This | # ]
Easy solution
Authored by: smkolins on May 23, '02 12:57:16PM

I was indeed seeing a pause during startup. I agree putting in the IP address would work but using a public ntp server by its IP address is something they specifically often suggest you don't do.



[ Reply to This | # ]
Time servers
Authored by: Lucky_Strike on May 26, '02 07:50:23AM

Just did a search on Google for ntp servers useage - the recommendations seem to be not to use the Stratum 1 ntp servers unless you have a large network. I couldn't find any mention regarding using an IP as opposed to a name. Apple's ntp servers do not appear on the Stratum 1 list, nor indeed on the Stratum 2 list, so I would think that the overloading problems mentioned in the advice I found are not relevant wrt Apple's ntp servers. Could you enlightn me wrt info about using a name as opposed to IP?
Thanks



[ Reply to This | # ]