Knowing what processes are running on your Mac is essential for troubleshooting performance issues, tracking down rogue apps, and understanding what your system is doing behind the scenes. Whether you prefer a graphical tool or the command line, macOS gives you several ways to get a complete picture.
Quick Answer
Open Activity Monitor from /Applications/Utilities/ for a quick visual overview of all running processes. Use Terminal commands like ps, top, and lsof for scriptable, detailed output. For advanced inspection — including process trees, environment variables, and short-lived process capture — use ProcXray.
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
- Open Finder.
- Go to Applications > Utilities.
- Double-click Activity Monitor.
Alternatively, press Cmd + Space to open Spotlight, type “Activity Monitor”, and press Enter.
Viewing all processes
By default, Activity Monitor only shows processes owned by your user account. To see everything:
- Click the View menu in the menu bar.
- Select All Processes.
You can now see every process running on your Mac, including system daemons and background services.
Sorting and filtering
- Click any column header (CPU, Memory, PID) to sort by that metric.
- Use the search field in the top-right to filter by process name.
- Switch between the CPU, Memory, Energy, Disk, and Network tabs for different resource views.
Limitations
Activity Monitor works well for quick checks, but it has blind spots:
- No process tree. You see a flat list with no parent-child relationships. When an app spawns helper processes, there is no way to tell which process launched which.
- No environment variables. You cannot inspect the environment a process was started with.
- Short-lived processes are missed. Processes that start and exit between refresh intervals are never displayed.
- No regex search. The search field only supports simple text matching.
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
Each line shows the user, PID, CPU usage, memory usage, start time, and the full command.
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 -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. While top is running, you can press o and type a column name to change the sort order.
To show a one-time snapshot without entering interactive mode:
# Print top 10 processes by CPU, then exit
top -l 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
Combining commands
You can chain these commands for targeted investigations:
# Find the PID of a process and list its open files in one step
lsof -p $(pgrep -f "node server.js")
Limitations
Terminal commands are powerful but have trade-offs:
- Output can be overwhelming —
lsofoften produces thousands of lines. psshows a static snapshot; by the time you read it, short-lived processes may have already exited.- Correlating data across
ps,top, andlsofrequires manual work. - No visual process hierarchy without additional formatting.
Method 3: ProcXray
ProcXray is a native macOS app that combines the convenience of a graphical interface with depth that goes beyond both Activity Monitor and terminal commands.
What ProcXray adds
- Process tree view. Toggle between a flat list and a live hierarchical tree showing parent-child relationships. Instantly see which app or script spawned a process.
- Environment variables. Click any process to inspect every environment variable it was launched with — searchable and copyable as JSON.
- Short-lived process capture. Newly spawned processes are highlighted in green; recently exited processes are retained in red. Transient processes that Activity Monitor and
psmiss are captured. - Real-time regex search. Filter across process names, PIDs, command-line arguments, and paths using regex patterns.
- Code signature verification. See at a glance whether each process is signed, who signed it, and what entitlements it holds.
ProcXray is especially useful when you need to investigate why a process is running, not just that it is running.
When to Use Each Method
| Task | Activity Monitor | Terminal | ProcXray |
|---|---|---|---|
| Quick CPU/memory check | Best | Good | Good |
| See all running processes | Good | Best | Best |
| Find a process by name | Good | Good | Best |
| View process tree (parent-child) | No | Limited | Best |
| Inspect environment variables | No | Awkward | Best |
| Catch short-lived processes | No | No | Best |
| Scripted/automated checks | No | Best | No |
| Check code signatures | No | Manual | Best |
FAQ
How many processes are normally running on a Mac?
A typical Mac runs 300 to 500 processes at any time, most of them system daemons and background services. This is normal. If you see an unusually high number or unfamiliar process names, investigate with ps aux or ProcXray to determine what they are.
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?
- Open Activity Monitor and click the CPU tab.
- Sort by % CPU (click the column header).
- Identify the process consuming the most resources.
- Select it and click the X button in the toolbar to quit it.
For processes that refuse to quit, use Terminal: kill -9 <PID>. Replace <PID> with the process ID shown in Activity Monitor or from ps aux.
Sources and References
- Apple: Activity Monitor User Guide
pscommand referencetopcommand referencelsofcommand reference
Download ProcXray → — free, macOS Sonoma+.