skills/chaterm/terminal-skills/process-management

process-management

SKILL.md

Process Management

Overview

Linux process viewing, signal handling, resource limiting and other management skills.

Process Viewing

ps Command

# Common formats
ps aux                              # All process details
ps -ef                              # Full format
ps -eo pid,ppid,cmd,%mem,%cpu       # Custom columns

# Find specific process
ps aux | grep nginx
ps -C nginx                         # By command name

# Process tree
ps auxf
pstree
pstree -p                           # Show PID

top/htop

# top interactive commands
top
# P - Sort by CPU
# M - Sort by memory
# k - Kill process
# q - Quit

# htop (more user-friendly)
htop

Other Tools

# Sort by resource
ps aux --sort=-%cpu | head -10      # Highest CPU
ps aux --sort=-%mem | head -10      # Highest memory

# View process details
cat /proc/PID/status
cat /proc/PID/cmdline
ls -la /proc/PID/fd                 # Open file descriptors

Signal Handling

Common Signals

# Signal list
kill -l

# Common signals
# SIGTERM (15) - Graceful termination (default)
# SIGKILL (9)  - Force termination
# SIGHUP (1)   - Reload configuration
# SIGSTOP (19) - Pause process
# SIGCONT (18) - Continue process

kill Command

# Terminate process
kill PID                            # Send SIGTERM
kill -9 PID                         # Force terminate
kill -HUP PID                       # Reload config

# Terminate by name
pkill nginx
pkill -9 -f "python script.py"

# Terminate all processes of a user
pkill -u username

# killall
killall nginx
killall -9 nginx

Background Tasks

Job Control

# Run in background
command &
nohup command &                     # Ignore hangup signal
nohup command > output.log 2>&1 &

# Job management
jobs                                # View jobs
fg %1                               # Foreground
bg %1                               # Background
Ctrl+Z                              # Pause current process

screen/tmux

# screen
screen -S session_name              # Create session
screen -ls                          # List sessions
screen -r session_name              # Resume session
Ctrl+A D                            # Detach session

# tmux
tmux new -s session_name
tmux ls
tmux attach -t session_name
Ctrl+B D                            # Detach session

Resource Limits

ulimit

# View limits
ulimit -a

# Set limits
ulimit -n 65535                     # Max file descriptors
ulimit -u 4096                      # Max processes
ulimit -v unlimited                 # Virtual memory

# Permanent settings /etc/security/limits.conf
# * soft nofile 65535
# * hard nofile 65535

cgroups

# View cgroup
cat /proc/PID/cgroup

# Limit CPU (systemd)
systemctl set-property service.service CPUQuota=50%

# Limit memory
systemctl set-property service.service MemoryLimit=512M

Common Scenarios

Scenario 1: Find and Kill Zombie Processes

# Find zombie processes
ps aux | awk '$8=="Z" {print}'

# Find parent process
ps -o ppid= -p ZOMBIE_PID

# Kill parent process
kill -9 PARENT_PID

Scenario 2: Find Process Using Port

# Find process using port 80
lsof -i :80
ss -tlnp | grep :80
netstat -tlnp | grep :80

# Kill process
fuser -k 80/tcp

Scenario 3: Monitor Process Resources

# Real-time monitor single process
top -p PID
watch -n 1 "ps -p PID -o %cpu,%mem,cmd"

# View files opened by process
lsof -p PID

Troubleshooting

Problem Solution
Process unresponsive strace -p PID to view system calls
CPU 100% top, perf top to analyze hotspots
Memory leak pmap -x PID, /proc/PID/smaps
Zombie process Find parent process, restart or kill parent
Process OOM killed `dmesg
Weekly Installs
26
GitHub Stars
28
First Seen
Jan 24, 2026
Installed on
opencode22
gemini-cli22
github-copilot21
codex21
cursor20
cline18