←→ Underneath: Background Apps · All Mac guides

How to see what is running in the background on your Mac

Your Mac runs hundreds of processes you never opened. Most belong to macOS. A few come from apps you installed, and some of those start again every time you log in. Here is how to find them.

Short answer: open Activity Monitor to see what runs now, and System Settings › General › Login Items & Extensions to see what starts by itself. For the full picture, look in the LaunchAgents and LaunchDaemons folders or run launchctl list in Terminal.

1. Activity Monitor: what runs right now

Open it from Applications › Utilities, or press ⌘ Space and type “Activity Monitor”.

What it misses: it does not tell you why a process runs, whether it comes back after a restart, or which file starts it. Names like com.adobe.acc.installer.v2 or Google Chrome Helper (Renderer) say little.

2. Login Items & Extensions: what starts by itself

Open System Settings › General › Login Items & Extensions. You see two lists:

What it misses: it does not say if an item is running now, how much memory it uses, or which file it comes from. Some entries show only a developer name.

3. The LaunchAgents and LaunchDaemons folders

Most background jobs that start on their own are launchd jobs. Each one is a small .plist file that tells macOS what to run and when. In Finder, choose Go › Go to Folder… (⇧⌘G) and open:

FolderRuns asStarts
~/Library/LaunchAgentsYouWhen you log in
/Library/LaunchAgentsEach userWhen any user logs in
/Library/LaunchDaemonsrootWhen the Mac starts, before login
/System/Library/Launch…macOSProtected; do not touch

The file name is usually the job's label, such as com.google.keystone.agent.plist. Open it in a text editor to see ProgramArguments (what runs), RunAtLoad (start at login) and KeepAlive (restart if it stops).

What it misses: since macOS 13, apps can also register background jobs from inside their own app bundle, with no file in these folders. Those show up only under Allow in the Background.

4. Terminal: the complete list

These commands are read-only. They change nothing.

All launchd jobs loaded for your user, with process ID (a dash means not running) and last exit code:

launchctl list | grep -v com.apple

Details of one job, including its plist path and state:

launchctl print gui/$(id -u)/com.example.label

Processes that listen on a network port (dev servers, sync tools):

lsof -nP -iTCP -sTCP:LISTEN

Your own processes, biggest memory first (RSS is in kilobytes):

ps -U $(id -u) -o pid,rss,etime,comm -m | head -30

Every login item and background item that macOS knows about (needs your administrator password; output is long):

sudo sfltool dumpbtm

What is normal?

If you do not recognise a name, search for its label or the developer name in its path before you stop it.

FAQ

Is it bad to have many processes running on a Mac?

No. A normal Mac runs several hundred processes, and most belong to macOS. Look for the few that use a lot of memory or CPU, or that you do not recognise.

Why does Activity Monitor show so many Google Chrome Helper processes?

Chrome and other Chromium or Electron apps run one helper process per tab, extension or renderer. They are part of the app and quit when the app quits.

Where are launch agents stored on a Mac?

In ~/Library/LaunchAgents for your user, /Library/LaunchAgents for all users, and /Library/LaunchDaemons for system-wide jobs that run as root. The /System/Library folders belong to macOS and are protected.

Does the Login Items list in System Settings show everything?

No. It shows apps that open at login and apps with background items, grouped by app or developer. It does not show what is running now, how much memory it uses, or which file starts it.