3.5 KiB
Process Monitoring and Management in Linux
1. Viewing Running Processes
Let's start with the basic commands to view running processes:
ps - Process Status
The 'ps' command provides a snapshot of current processes.
Basic usage: `ps
Common options:
-aux: Shows all processes for all users-ef: Similar to aux, but in a different format-lax: Provides more detailed information
top - Table of Processes
'top' provides a real-time, dynamic view of running processes.
Basic usage:
top
In top, you can use:
- 'q' to quit
- 'k' to kill a process (you'll be prompted for the PID)
- 'r' to renice (change priority) of a process
htop - Interactive Process Viewer
'htop' is an improved version of 'top' with a more user-friendly interface.
Install it (if not already installed):
sudo apt install htop# For Debian/Ubuntusudo yum install htop# For CentOS/RHEL
Run it:
htop
2. Process Management
kill - Terminate a Process
The 'kill' command sends a signal to a process, by default the TERM signal.
Basic usage:
kill PID
Common signals:
- SIGTERM (15): Graceful termination
- SIGKILL (9): Forceful termination
Example:
kill -9 1234
killall - Kill Processes by Name
'killall' allows you to kill all processes with a given name.
Example:
killall firefox
pkill - Kill Processes Based on Name and Other Attributes
'pkill' is more flexible than killall, allowing you to kill processes based on various attributes.
Example:
pkill -u username firefox
nice and renice - Adjust Process Priority
'nice' starts a process with a specified priority, while 'renice' changes the priority of a running process.
Nice values range from -20 (highest priority) to 19 (lowest priority).
Example:
nice -n 10 command# Start 'command' with lower priorityrenice -n 5 -p PID# Change priority of running process
3. Background and Foreground Processes
Start a process in the background:
command &
Move a running process to the background:
Press Ctrl+Z
Bring a background process to the foreground:
fg %job_number
List background jobs:
jobs
4. Advanced Monitoring Tools
iotop - I/O Monitoring
'iotop' shows I/O usage by processes.
Install:
sudo apt install iotop # For Debian/Ubuntusudo yum install iotop # For CentOS/RHEL
Run:
sudo iotop
nethogs - Network Monitoring
'nethogs' shows network usage by process.
Install:
sudo apt install nethogs# For Debian/Ubuntusudo yum install nethogs# For CentOS/RHEL
Run:
sudo nethogs
lsof - List Open Files
'lsof' lists open files and the processes using them.
Example (list all network connections):
sudo lsof -i
5. System Monitoring
free - Display Amount of Free and Used Memory
free -h # -h for human-readable format
vmstat - Report Virtual Memory Statistics
vmstat 1 # Report every second
iostat - Report CPU Statistics and I/O Statistics
iostat 1 # Report every second
6. Process Tracking and Analysis
strace - Trace System Calls and Signals
'strace' is useful for diagnosing problems with processes.
Example:
strace command
ltrace - Library Call Tracer
'ltrace' is similar to strace but for library calls.
Example:
ltrace command
7. Continuous Monitoring with watch
The 'watch' command allows you to run any command periodically, showing output in fullscreen.
Example (update process list every 2 seconds and look at top 5 lines of output):
watch -n 2 'ps aux | sort -nrk 3,3 | head -n 5'