Skip to content

Linux 进程管理

概述

进程管理是 Linux 系统管理的核心技能之一。Linux 提供了丰富的进程管理工具,可以用于查看进程状态、控制进程执行、管理进程优先级等。

进程查看工具

ps - 进程状态查看

bash
# 显示所有进程
ps aux

# 显示所有进程(BSD 格式)
ps -ef

# 显示当前用户的进程
ps ux

# 自定义输出格式
ps -eo pid,user,%cpu,%mem,comm

# 查找特定进程
ps aux | grep nginx

top - 实时进程监控

bash
# 启动 top
top

# 每 2 秒刷新一次
top -d 2

# 监控特定进程
top -p 1234,5678

# 批处理模式
top -b -n 1

htop - 增强版进程监控

bash
# 启动 htop
htop

# 显示进程树
htop -t

进程控制工具

kill - 发送信号给进程

bash
# 正常终止进程
kill 1234

# 强制终止进程
kill -9 1234

# 发送 SIGHUP 信号
kill -HUP 1234

killall - 按名称终止进程

bash
# 终止所有 nginx 进程
killall nginx

# 强制终止所有 python 进程
killall -9 python

pkill - 按模式终止进程

bash
# 终止匹配模式的进程
pkill python

# 匹配完整命令行
pkill -f "python script.py"

作业控制

jobs - 显示作业列表

bash
# 显示所有作业
jobs

# 显示详细信息
jobs -l

bg/fg - 后台/前台作业

bash
# 将当前作业放到后台
bg

# 将指定作业放到前台
fg %1

nohup - 忽略挂起信号

bash
# 后台运行命令
nohup command &

# 指定输出文件
nohup command > output.log 2>&1 &

进程优先级管理

nice - 设置进程优先级

bash
# 以较低优先级运行命令
nice -n 10 command

# 以较高优先级运行命令
nice -n -10 command

renice - 修改运行中进程的优先级

bash
# 修改进程优先级
renice 10 1234

# 修改用户所有进程的优先级
renice 10 -u username

系统服务管理

systemctl - 系统服务控制

bash
# 启动服务
sudo systemctl start nginx

# 停止服务
sudo systemctl stop nginx

# 重启服务
sudo systemctl restart nginx

# 查看服务状态
sudo systemctl status nginx

# 启用服务
sudo systemctl enable nginx

故障排除

常见问题

bash
# 进程无法终止
kill -9 进程ID

# 查看系统负载
uptime

# 查看高 CPU 进程
top -b -n 1 | head -20

# 查看高内存进程
ps aux --sort=-%mem | head -10

最佳实践

  1. 定期监控:使用 top 或 htop 定期监控系统
  2. 合理设置优先级:重要进程设置较高优先级
  3. 及时清理:定期清理僵尸进程和孤儿进程
  4. 使用服务管理:系统服务使用 systemctl 管理