Linux 进程管理的常用命令及示例,涵盖实时监控、进程控制、资源分析等核心场景:


1. 实时进程监控

top - 动态查看系统资源占用

top                      # 默认界面(按 CPU 排序)
top -u www-data # 只显示指定用户的进程
top -p 1234,5678 # 监控指定 PID 的进程
# 快捷键:M(按内存排序) | P(按 CPU 排序) | k(终止进程) | q(退出)

htop - 增强版 top(需安装)

htop                     # 彩色界面,支持鼠标操作
htop -d 10 # 设置刷新间隔为 10 秒
# 安装:Ubuntu/Debian: sudo apt install htop | CentOS: sudo yum install htop

2. 进程信息查看

ps - 查看进程快照

ps aux                   # 查看所有运行中的进程(BSD 格式)
ps -ef # 查看所有进程(标准格式)
ps -u root # 查看指定用户的进程
ps -p 1234 -o pid,cmd # 显示指定 PID 的进程名和命令

pstree - 树状显示进程

pstree -p               # 显示进程树(包含 PID)
pstree -a # 显示完整命令行参数

w - 查看登录用户及进程

w                       # 显示当前登录用户及其运行进程
w -h # 简洁模式(无标题行)

3. 进程控制

kill - 终止进程

kill 1234               # 默认发送 TERM 信号(正常终止)
kill -9 1234 # 强制终止进程(SIGKILL 信号)
kill -l # 列出所有信号类型

killall/pkill - 按名称终止进程

killall nginx           # 终止所有名为 nginx 的进程
pkill -f "python app.py" # 按完整命令名终止进程

nice/renice - 调整进程优先级

nice -n 19 ./script.sh  # 以最低优先级启动进程(优先级 19)
renice -n 10 -p 1234 # 修改运行中进程的优先级

4. 服务管理 (systemd)

systemctl start nginx    # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl status nginx # 查看服务状态
journalctl -u nginx # 查看服务日志

5. 资源占用分析

vmstat - 查看系统资源概览

vmstat 1 5              # 每秒刷新一次,共输出 5 次(CPU、内存、IO 统计)

lsof - 查看文件/端口关联进程

lsof -i :80             # 查看占用 80 端口的进程
lsof /var/log/syslog # 查看打开指定文件的进程

netstat/ss - 网络连接查看

netstat -tulnp          # 查看所有监听端口及对应进程
ss -ltn # 更快速的网络连接查看(替代 netstat)

6. 后台进程管理

./long_task.sh &        # 启动后台进程(输出仍显示在终端)
nohup ./daemon.sh & # 脱离终端运行(输出重定向到 nohup.out)
jobs # 查看当前终端的后台作业
fg %1 # 将后台作业 1 切换到前台
bg %2 # 恢复暂停的后台作业 2

典型场景示例

查找并终止高 CPU 进程

top                     # 找到占用高的 PID
kill -9 PID # 强制终止

批量清理僵尸进程

ps -A -ostat,ppid | grep -e '[Zz]' | awk '{print $2}' | xargs kill -9

查看进程启动时间

ps -p 1234 -o lstart,cmd

注意事项

  1. **谨慎使用 kill -9**:优先尝试 kill PIDkill -15 PID(允许进程清理资源)。
  2. 服务管理权限:操作服务需 rootsudo 权限。
  3. 后台进程存活:使用 nohupscreen/tmux 保持进程在终端关闭后继续运行。

以上命令适用于 Ubuntu、CentOS、Debian 等主流发行版。