Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If there's an app that starts up by itself, what would the most efficient places to look for it be? Does anyone have a nice comprehensive list of where to check for Startup Items, Login Items, Login Hooks, Cron, kernel extensions, etc...

At this point I forget where half of these folders/plist files are. I'm hoping someone has a cheatsheet they can share.

Basically I'm looking for a list of the most common places where Mac OS launches apps or scripts automatically (eg: at logon, or on a schedule, etc)

share|improve this question
Hey, it's everything you ever wanted to know about launchd but were afraid to ask: – username Jan 18 '10 at 23:54
up vote 17 down vote accepted

Apps that run on Startup:

/Library/StartupItems - Standard Startup Items are found here

sudo launchctl list or look at /Library/LaunchDaemons and /System/Library/LaunchDaemons for launchd plists that are set to run without someone necessarily being logged in. Note: Some .plist files in the folders listed won't appear in launchctl list as they are not loaded to run.

Apps that run on User Login:

Check your Login Items by going to the Accounts Preference Pane in System Preferences.

Check out ~/Library/LaunchAgents, /Library/LaunchAgents/ and /System/Library/LaunchAgents for launchd .plists that run when a user is logged in - you can use sudo launchctl list to see which ones are loaded.

Apps that run on a schedule:

In Terminal: crontab -e will show what has been scheduled using cron to run items at certain times. Items in any of the LaunchAgents or LaunchDaemons folders may be set to run at intervals as well as defined in their .plist file

Kernel Extensions

To see what Kernel extensions are loaded you can either user Applications/Utilites/System (can be opened quickly by holding option when clicking on the Apple menu - About This Mac... changes to System Profiler... in 10.5+)

Alternatively you can run kextstat on the command line.

Login/Logout Hooks

To find out if a Login or Logout Hook is installed and to find where the script file is you can run the following command:

defaults read LoginHook and defaults read LogoutHook

or to get both at the same time:

/usr/libexec/PlistBuddy -c Print /var/root/Library/Preferences/ | grep 'Hook'

share|improve this answer
Thanks Chealion. Great answer, as always ;-) – username Jul 22 '09 at 19:34
You're welcome. :-) – Chealion Jul 22 '09 at 20:00
Chealion, very nice response! One query - can you clarify about the login hooks - neither of your commands work for me, and I have no Plistbuddy in libexec, does it require developer tools or something? – The Tentacle Aug 21 '09 at 1:01
@The Tentacle - PlistBuddy is installed at that location if you're running 10.5 or newer. Try using locate PlistBuddy to find where it is installed as it tends to be installed in bundles /Library/Receipts/ which require it's use. To find out more login hooks check out – Chealion Aug 21 '09 at 3:17
@The Tentacle: PlistBuddy has been around since 10.2 but it's location was never standard until 10.5 (and even then Mac Pros that came with 10.5.6 did not have it in the normal spot until a combo update was applied) – Chealion Aug 21 '09 at 3:18

Some things can be found in the user's startup options as mentioned by loxp, but not everything.

Some things are configured to be launched by launchd at different times. You can look through the filesystem to figure out what's being launched (I forget the exact paths), or grab Lingon and see what it lists.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .