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
注意事项
- **谨慎使用
kill -9
**:优先尝试kill PID
或kill -15 PID
(允许进程清理资源)。 - 服务管理权限:操作服务需
root
或sudo
权限。 - 后台进程存活:使用
nohup
或screen/tmux
保持进程在终端关闭后继续运行。
以上命令适用于 Ubuntu、CentOS、Debian 等主流发行版。