Back to Blog

How to See All Running Processes on Mac

See every running process on your Mac with Activity Monitor or Terminal. Show background processes, find a PID, and check CPU or memory usage.

· Last updated:
On this page

To see what is running on your Mac, start with Activity Monitor. If you need a process list for a script or a specific PID, use Terminal. Both are included with macOS.

Quick Answer

Press Cmd + Space, search for Activity Monitor, and choose View → All Processes. Sort the CPU or Memory tab to investigate resource use. In Terminal, ps aux lists processes, while top -o cpu shows a live view.

What you want to checkWhere to start
All processes, including background servicesActivity Monitor → View → All Processes
Which app started a helperView → All Processes, Hierarchically
The busiest processes right nowCPU tab → sort by % CPU
Memory use and overall pressureMemory tab → sort by Memory and check the pressure graph
A process ID or command for a scriptTerminal → ps aux

Method 1: Activity Monitor

Activity Monitor is Apple’s built-in process viewer. It shows CPU, memory, energy, disk, and network usage for every running process.

How to open Activity Monitor

  1. Open Finder.
  2. Go to Applications > Utilities.
  3. Double-click Activity Monitor.

Alternatively, press Cmd + Space to open Spotlight, type “Activity Monitor”, and press Enter.

Viewing all processes

If Activity Monitor is showing only your own processes, switch its view:

  1. Click the View menu in the menu bar.
  2. Select All Processes.

You can now see every process running on your Mac, including system daemons and background services.

Sorting and filtering

Activity Monitor can show parent-child relationships: choose View → All Processes, Hierarchically. This is useful for tracing which process started a helper. See Apple’s process-viewing guide.

Limitations

Activity Monitor works well for quick checks, but it has blind spots:

Method 2: Terminal Commands

Terminal gives you more power and flexibility. Here are the most useful commands for checking running processes.

ps — List processes

The ps command prints a snapshot of current processes.

# List all running processes with detailed info
ps aux

The main columns help you identify the process before taking action:

ColumnMeaning
USERAccount that owns the process
PIDProcess ID; it can change after an app restarts
%CPU / %MEMCPU and memory usage reported by ps
RSSResident memory in kilobytes
COMMANDCommand and arguments; use ps -ww to avoid width truncation

These are process measurements, not proof that a process is faulty. For system memory pressure, use Activity Monitor.

To find a specific process by name:

# Find all processes matching "Safari"
ps aux | grep Safari

To see the full command-line arguments (useful for scripts):

# Show full command for a specific PID
ps -ww -p 1234 -o pid,command

top — Real-time process monitor

The top command shows a live, continuously updating view of running processes.

# Launch top, sorted by CPU usage
top -o cpu

Press q to quit. Use top -o cpu to start sorted by CPU; see man top for the options supported by your macOS version.

For a short non-interactive CPU check, collect two samples and read the second one. The first sample has no previous interval for a valid per-process CPU comparison:

top -l 2 -s 1 -n 10 -o cpu

lsof — List open files and connections

Every process holds open files, sockets, and system resources. The lsof command reveals them.

# Show all open files for a specific process
lsof -p 1234

# Find which process is using a specific port
lsof -i :8080

# List all network connections
lsof -i

Limitations

Terminal commands are powerful but have trade-offs:

Method 3: ProcXray

Use ProcXray when the process list raises a deeper question: which parent launched a helper, what arguments or environment it received, or how its resource use changed during your investigation.

What ProcXray adds

ProcXray is especially useful when you need to investigate why a process is running, not just that it is running.

ProcXray showing Chrome’s process tree and CPU and memory history

The selected process in this ProcXray screenshot is the main Google Chrome process (PID 1984); its renderer helpers appear as separate rows. The memory chart shows a brief spike followed by a return near the earlier level. It illustrates how to read a trend, not a confirmed memory leak.

When to Use Each Method

TaskActivity MonitorTerminalProcXray
Quick CPU/memory checkBestGoodGood
See all running processesGoodBestBest
Find a process by nameGoodGoodBest
View process tree (parent-child)Yes (View menu)LimitedBest
Inspect environment variablesNoAwkwardBest
Catch short-lived processesNoNoBest
Scripted/automated checksNoBestNo
Check code signaturesNoManualBest

FAQ

How many processes are normally running on a Mac?

The number varies with macOS, installed apps and current work. A count alone cannot tell you whether the Mac is healthy. Look for sustained resource use, memory pressure and symptoms rather than a fixed “normal” total.

Can I check running processes without installing anything?

Yes. Activity Monitor is pre-installed on every Mac, and Terminal commands like ps and top are available out of the box. These cover most basic needs. Third-party tools like ProcXray become valuable when you need deeper inspection capabilities.

How do I find and stop a process that is slowing down my Mac?

Save your work and quit the app normally first. If it remains unresponsive, select its process in Activity Monitor and use Stop → Quit, then Force Quit only if necessary. Unsaved work can be lost. Identify unfamiliar system processes before considering termination.

In Terminal, kill -TERM 1234 requests termination; replace 1234 with the PID you have just checked. kill -KILL 1234 is a last resort because it prevents cleanup. See Apple’s explanation of Quit and Force Quit.

Sources and References

Inspect process details and resource history with ProcXray →