On Windows computers, startup programs are a frequent cause of slow down — startup slow down, perhaps. Of all those apps that Aunt Betty has downloaded and installed, a large number have unilaterally decided they’re important enough to run every time the computer starts. The consequence, of course, is that the computer now takes five minutes to ‘sort itself out’ and be ready to use after hitting the power button.
On the Mac, apps tend to be slightly better citizens about not starting up on each boot without a good reason — or without asking you first, and it’s usually easier to take control of the situation, but it can still be worth taking a look at what’s in this list if you’re having problems, or just want to see what is going on with your Mac.
So, in this article, I’ll be examining startup items in Mac OS X and showing you how to take control over what gets to run right after that familiar chime.
The Different Types of Startup Item
There are actually several ways that an application can get itself to fire up when the computer starts, and when you log in. Let’s take a look:
- Login Items — user-facing programs that run when you log in. This mechanism, accessible through System Preferences, is the one most people will already be familiar with.
- StartupItems — hidden or background programs that run at system startup (rather than at login).
- LaunchAgents — hidden or background programs that run on login (but can run upon the login of any user on the system, for example).
- LaunchDaemons — server programs, or daemons, that run even if no user logs in.
You certainly don’t need to spend time getting familiar with the last three if you don’t want to, but having some understanding of these different locations might help if you ever need to track down some errant application, or if you’re interested in getting a deeper understanding of the operating system ticking away inside your Mac.
The most straightforward, and for many people, the only place you’ll need to go, is across to System Preferences > Accounts and then click on the Login Items tab.
If there’s something you don’t want or need here, you can simply select it in the list and use the minus button to get rid of it. Nice and simple. Equally, though, if there’s actually something you do want to run on each login, you can add it to the list, either by dragging an application from the Finder into the list, or using the plus button to locate it.
Note that some applications will put themselves back here the next time they are launched, so you might want to check back again later to make sure nothing unwanted has been re-added (and check any offending applications’ Preferences dialogue for an auto-start setting to prevent it happening again).
Before we jump head first into the more geeky startup files, just a quick word on the concept of ‘domains’. All three of the folders coming up can be located in several places, each place being in a different one of these domains:
- User — inside /Users/yourname/Library. Any startup file in this domain only affects your user account.
- Local — inside /Library at the root of the drive. Any startup file in the Local domain will affect all users.
- System — inside /System/Library. These files also affect all users, but we won’t be meddling with them, as they are Apple-provided and often very important to keep your Mac running as it should!
(There’s actually also a fourth ‘Network’ domain and, strictly speaking, the domains include more than just the Library folders, but that’s all probably out of the scope of this article!)
As mentioned earlier, StartupItems contains programs that run at system startup, which of course is different from when a user logs in. This means that you shouldn’t be able to find a StartupItems folder in the User domain (/Users/yourname/Library/StartupItems), and since we’re leaving the System domain well enough alone (/System/Library/StartupItems), we have only one place to look.
In fact, it might be that you don’t have a /Library/StartupItems folder, or it might be empty. Well, great! That means there’s nothing in this place trying to start up, so there’s nothing to examine.
As you can see, on my system, there is just one StartupItem. It actually has to do with a rather geeky piece of software called Wireshark; this particular StartupItem changes some permissions each time the system boots to allow Wireshark to work properly if I need to use it.
If there’s anything undesired hanging around in this location, exercise a little caution before just deleting it. Certainly don’t delete anything in /System/Library/StartupItems, but if there’s an entry in /Library/StartupItems you don’t want, I suggest you move it out of the folder first, rather than deleting it. If you find that its absence is causing problems, you can just move it back into the folder again to reinstate it.
You’re likely to have two LaunchAgents folders that are worth a look — one in your User domain (/Users/yourname/Library/LaunchAgents) and one in the Local domain (/Library/LaunchAgents).
You might notice that these are in a different format. Rather than being a folder with several files and resources, each LaunchAgent is just a property list (plist) file that points to the application to run. It is also possible that some of the items in LaunchAgents are disabled, or only run periodically, even though the files are in that folder, so do bear that in mind if you find an alarming number of entries!
In my User LaunchAgents folder, you can see several. The top four are actually all to do with FaceTime for Mac and you might see similar entries. For FaceTime for Mac to be able to receive calls, a LaunchAgent has to start a program that listens for incoming calls from an Apple server, so that you can be given the choice to accept or reject the call. I also have Google Contact Sync and 1Password starting up on login as well.
Once again, if there’s something here you want to get rid of, I suggest moving the plist to a different location, rather than deleting it right away. That way, you can move the plist back if you have any problems.
Finally, we turn our attention to LaunchDaemons. As mentioned earlier, LaunchDaemons will run even before any user logs in and the Mac is simply sitting at the login screen. This means that again, I don’t think you’ll find a LaunchDaemons folder in the User domain, so let’s head on over to /Library/LaunchDaemons.
In my Local LaunchDaemons folder, you will notice an entry for VMware. VMware needs to kick off a startup script when my computer boots — there are virtual network interfaces that need to be brought up and other things that need to prepared before any virtual machines themselves can be started. Having this happen at system startup, rather than when I log in, means that these services will have plenty of time to be ready for me by the time I manage to type in my password — and they will be universally up and available to all users.
I shouldn’t have to tell you this by now — but if you’ve found something you don’t want here and are going to remove it, move it somewhere else rather than deleting it right away.
And with that, we have examined pretty much every mechanism that Mac applications can use to get themselves running at startup. I personally like to keep the items I let run at startup to a minimum — it prevents wasting valuable computing resources and keeps away that five minute startup scenario where you are waiting for a huge number of applications to launch before you get to actually do anything with your computer. Others might find a different balance between functionality and startup speed to be more appropriate. Now, you are armed with the knowledge of where all the Mac startup folders are, and can make these decisions — and perhaps come back from time to time to make sure everything’s still in check.