Linux gives you precise control over running processes—whether you want to kill an unresponsive application, pause background tasks, resume suspended jobs, or inspect what’s consuming system resources. Unlike GUI-based systems, command-line tools in Linux let you interact with processes directly, efficiently, and often remotely. In this guide, you’ll learn 10 powerful Linux commands to monitor, control, pause, resume, and kill processes like a true power user. Each command includes practical examples and usage tips to help you master process management from the terminal.
1. ps — View Running Processes
The ps
command lists active processes. It’s your go-to tool to see what’s currently running, along with their process IDs (PIDs), CPU usage, and more.
$ ps aux | grep firefox myuser 1918 4.2 3.1 984344 128000 ? Sl 10:00 0:35 /usr/lib/firefox/firefox
Use ps aux
for a full-format listing. You can filter results using grep
or refine searches using ps -ef
which shows processes in a tree-style output.
2. top — Live Process Monitoring
top
provides a real-time, continuously updating view of system processes. It shows CPU and memory usage per process and allows interactive commands to manage them.
$ top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1918 myuser 20 0 984344 128000 48960 S 4.2 3.1 0:35.00 firefox
Press k
in top
to kill a process by PID, r
to renice, and q
to quit. For a better UI, try htop
.
3. kill — Terminate a Process by PID
kill
sends signals to processes, typically used to stop them. You can send different signals like SIGTERM
(15) for graceful shutdown or SIGKILL
(9) for forceful termination.
$ kill 1918 # default is SIGTERM $ kill -9 1918 # force kill
Only processes you own (or root) can be killed. Use ps
or top
to find PIDs.
4. pkill — Kill by Process Name
pkill
allows you to terminate processes by name instead of PID, making it quicker to use when you’re killing by pattern.
$ pkill firefox $ pkill -9 chrome
It supports regex, user filtering, and signal customization. Combine with -u
to restrict to your user session.
5. killall — Kill All Instances by Name
killall
sends a signal to all processes matching a name. It differs slightly from pkill
in syntax and behavior on different distros (especially BSD vs Linux).
$ killall -15 node $ killall -9 vlc
Use it with care—killall
can terminate multiple critical processes if run as root.
6. nice — Launch with Modified Priority
nice
adjusts a program’s priority when launching it. The nice value ranges from -20 (highest priority) to 19 (lowest).
$ nice -n 10 python3 myscript.py
Lower priority processes yield more CPU to higher priority ones. Use this to run background tasks without slowing down the system.
7. renice — Change Priority of a Running Process
renice
changes the priority of an already running process. It’s useful if a process is hogging resources.
$ renice -n 15 -p 1918 1918 (process ID) old priority 0, new priority 15
You’ll need root permissions to renice processes you don’t own or increase their priority (lower nice values).
8. bg — Resume a Suspended Job in Background
When a process is paused with Ctrl+Z
, you can resume it in the background using bg
.
$ sleep 1000 ^Z [1]+ Stopped sleep 1000 $ bg [1]+ sleep 1000 &
This is useful in interactive shell sessions when you want to send a job to the background and keep working.
9. fg — Bring Background Job to Foreground
fg
brings a background or suspended job back to the foreground so you can interact with it again.
$ fg %1 sleep 1000
Use jobs
to list background jobs and their numbers.
10. xargs kill — Kill Multiple PIDs Programmatically
Combine ps
, grep
, and xargs
to kill multiple matching processes in a single line. This is a powerful pattern for scripting.
$ ps aux | grep node | awk '{print $2}' | xargs kill -9
This pipeline extracts the PID (second column) from matching processes and sends them to kill
. Be cautious with filters to avoid terminating unintended processes.
Conclusion
With these ten commands, you can control Linux processes like a pro. Whether you need to list processes, kill hung applications, prioritize resource usage, or resume background jobs, there’s a command for every situation. By combining tools like ps
, kill
, xargs
, and top
, you’ll gain full visibility and control over your system’s workload—without ever touching a GUI.
Pro tip: Use aliases in your shell config for repetitive tasks. For example, alias k9='xargs kill -9'
or alias pgrepme='ps aux | grep $USER'
. Once these commands become muscle memory, process management becomes second nature.
Mastering Linux process control not only makes you a more efficient developer or sysadmin—it gives you the confidence to handle anything your system throws at you, live and in production.