Linux process management is the set of tools and techniques for inspecting, controlling, and tuning the processes running on a Linux system. Every running program — a web server, a shell, a background cron job — exists as a process with its own PID, memory footprint, scheduling attributes, and signal-response rules. Mastering process management is a core sysadmin and developer skill: it lets you diagnose performance problems, clean up runaway jobs, tune CPU and I/O priority for competing workloads, and write scripts that run reliably even when users disconnect. The non-obvious key insight is that signals are the universal control channel — understanding which signal to send (and when) separates a practitioner from someone who always reaches for kill -9.
What This Cheat Sheet Covers
This topic spans 19 focused tables and 168 indexed concepts, 129 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Process Listing with ps
The ps command is the go-to snapshot tool for seeing what is running on a system. BSD-style (ps aux) and POSIX-style (ps -ef) produce similar output but differ in columns — aux adds %CPU, %MEM, VSZ, RSS, and STAT, while -ef adds PPID (parent PID).
| Command | Example | Description | |
|---|---|---|---|
ps aux | Lists all processes for all users with CPU%, MEM%, VSZ, RSS, and STAT columns (BSD style). | ||
ps -ef | Lists all processes in full format including PPID (POSIX/UNIX style). | ||
ps -eo pid,ppid,ni,pcpu,pmem,comm | • Prints only the user-specified columns • any keyword from ps --help all is valid | ||
ps -eo pid,pcpu,comm --sort=-%cpu | • Sorts output by a field • prefix with - for descending order (e.g. top CPU consumers first). | ||
ps -C nginx -o pid= | • Selects processes by exact executable name • suppresses header with =. | ||
ps -p 1234 -f | Shows full info for a specific PID. | ||
ps --ppid 1234 | Lists all direct child processes of a given parent PID. | ||
ps -ef --forest | Draws an ASCII tree of parent–child relationships. | ||
ps -L -p 1234 | Adds an LWP (thread ID) column to show all threads inside a process. | ||
ps -u www-data | Filters output to processes owned by a specific user (effective UID with -u, real UID with -U). |