One of the easiest ways to slow down your Mac is by overloading on launch applications. After a year or so, you might not even realize what apps are starting in the background. While apps like Spotify jump up front and center when they launch, alerting the user, other apps are happy to chug away in the menubar with nary a user interaction for months. If you find that your Mac doesn’t start as quickly as it used to, or your mouse is non-responsive when first turning on and logging in to your computer, you should check for unnecessary launch items. Stop these programs from running on startup, and you might speed up your Mac’s launch process significantly.
Try This First: Login Items and App-Controlled Behavior
Apps can start at login through two obvious ways: they are launched by the system at login, or the program automatically adds itself to the login items.
1. Open System Preferences, then navigate to “Users & Groups.”
2. Choose the user you want to modify in the list, and click the “Login Items” tab.
3. Select the app you want to remove from login, and press the “—” at the bottom of the list.
For apps that control their startup behavior from within the app, you’ll want to visit the app directly. Look for an item in the app’s preferences about starting at login. Uncheck that box, and the app will not run at login in the future.
This app-controlled behavior isn’t preferred by the operating system, but it isn’t completely uncommon with advanced apps or menubar apps. In most cases, these boxes control whether or not the app is added to the launchd processes mentioned below. Removing those processes from launchd without telling the app will often just result in their reinstallation the next time the app opens.
The Big Guns: Agents and Dæmons
Login processes can also be started using launchd. This service runs in the background, firing off windowless processes when you log in. An agent runs on behalf of the logged-in user, while a daemon runs under the root user.
In most cases, you’ll be looking for agents, which are found in “~/Library/LaunchAgents” and run on behalf of the logged-in user. “/Library/LaunchDaemons” holds daemons that run with root permissions. If your app backs up files or adjusts system processes, it could be stored in this location instead. The distinction really isn’t all that important for this particular use case, and you should avoid digging into those folders if at all possible.
Before you try anything, quit the application completely. If necessary, check in Activity Monitor for any leftover helper or agent applications that might be running in the background. If you find the app partially launching even after you’ve deleted it, this is an especially important step.
When all else fails, The easiest to remove startup agents and daemons is by deleting the app completely. If you can’t stop the app from starting within the app or in Login Items, your only recourse may be to completely delete the app, but this is a rare circumstance. You can delete the app and all its accessory files using a tool like AppCleaner or searching through the “~/Library” folder for the application’s name and developer’s name.
If you can’t turn off the agent through the app and can’t find the daemon on your hard drive, you can remove it from launchctl directly. However, if the app is still installed on your Mac, it will likely be reinstalled on next launch. So, in general, you want to remove processes after uninstalling the application.
To see what’s currently running in the background, run launchctl list in Terminal. Search through this list with the grep command for a process with the offending application’s name.
launchctl list | grep com.badapp
Once you’ve found the app, you can remove it from launchctl using the unload command.
launchctl unload ~/Library/LaunchAgents/com.badapp.plist
Once you’ve found and unloaded the application from launchctl, delete the associated plist file and any scripts the plist file references.
The simplest way to remove the application from startup is through the application itself. If that setting doesn’t exist, the Users & Groups preference pane should be your next step. Only if both fail should you explore the harder options, since they’re more challenging to implement correctly and there’s more than can trip you up.
You might also be interested in the following posts: