关于 process-management
面向系统管理员和运维人员的 Linux 进程管理技能指南,涵盖进程检查、信号处理、后台任务、资源限制和常见诊断。
主要功能
- 01检查进程和资源使用情况
- 02发送信号并终止进程
- 03管理后台任务和会话
- 04设置资源限制
- 05诊断端口占用和进程问题
适用场景
- 01查找并停止占用端口的进程
- 02监控 CPU 和内存使用
- 03排查无响应进程或僵尸进程
- 04在持久后台会话中运行任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ chaterm/ terminal-skills --skill process-management安装后在 Claude Code 中输入/process-management确认已加载。
详细介绍
进程管理
概述
Linux 进程查看、信号处理、资源限制及其他管理技能。
进程查看
ps 命令
# 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
其他工具
# 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 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 命令
# 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
后台任务
作业控制
# 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
资源限制
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
常见场景
场景 1:查找并终止僵尸进程
# 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
场景 2:查找占用端口的进程
# Find process using port 80
lsof -i :80
ss -tlnp | grep :80
netstat -tlnp | grep :80
# Kill process
fuser -k 80/tcp
场景 3:监控进程资源
# 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
故障排除
| 问题 | 解决方案 |
|---|---|
| 进程无响应 | 使用 strace -p PID 查看系统调用 |
| CPU 占用率 100% | 使用 top、perf top 分析热点 |
| 内存泄漏 | 使用 pmap -x PID、/proc/PID/smaps |
| 僵尸进程 | 查找父进程,重启或终止父进程 |
| 进程因 OOM 被终止 | 使用 `dmesg |
评论
支持 Markdown