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. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
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 =. |