Common Mac OS folders/settings to check (when trying to get rid of a pesky self-launching app)

11

14

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)

username

Posted 2009-07-22T17:50:21.157

Reputation: 1 178

Hey, it's everything you ever wanted to know about launchd but were afraid to ask: http://video.google.com/videoplay?docid=1781045834610400422#

– username – 2010-01-18T23:54:41.230

Answers

17

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 Profiler.app (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 com.apple.loginwindow LoginHook and defaults read com.apple.loginwindow LogoutHook

or to get both at the same time:

/usr/libexec/PlistBuddy -c Print /var/root/Library/Preferences/com.apple.loginwindow.plist | grep 'Hook'

Chealion

Posted 2009-07-22T17:50:21.157

Reputation: 22 932

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 – 2009-08-21T01:01:46.513

@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 http://krypted.com/mac-os-x/login-logout-hooks/

– Chealion – 2009-08-21T03:17:27.067

@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 – 2009-08-21T03:18:02.493

2

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.

Herms

Posted 2009-07-22T17:50:21.157

Reputation: 7 644