194 lines
3.5 KiB
Markdown
194 lines
3.5 KiB
Markdown
|
|
# 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:
|
||
|
|
- `ps aux`: Shows all processes for all users
|
||
|
|
- `ps -ef`: Similar to aux, but in a different format
|
||
|
|
- `ps 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/Ubuntu
|
||
|
|
sudo 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 priority
|
||
|
|
renice -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/Ubuntu
|
||
|
|
sudo 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/Ubuntu
|
||
|
|
sudo 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):
|
||
|
|
```
|
||
|
|
watch -n 2 'ps aux | sort -nrk 3,3 | head -n 5'
|
||
|
|
```
|