Linux进程管理
在 Linux 系统中,进程管理是系统运维和日常操作的重要部分。以下是常用的进程管理命令及其用途:
1. 查看进程
-
ps
查看当前进程的快照。ps aux # 查看所有运行中的进程(BSD 格式) ps -ef # 查看所有进程(标准格式) ps -u user # 查看特定用户的进程
-
top
/htop
实时动态查看进程和系统资源占用(htop
是增强版,需安装)。top # 交互式界面,按 `q` 退出 htop # 更友好的界面(支持鼠标操作)
-
pstree
以树状结构显示进程关系。pstree -p # 显示进程及其 PID
2. 终止进程
-
kill
通过进程 ID (PID) 终止进程。kill -9 PID # 强制终止进程(SIGKILL) kill -15 PID # 优雅终止进程(SIGTERM,默认)
-
pkill
通过进程名终止进程。pkill -9 nginx # 强制终止所有名为 "nginx" 的进程
-
killall
终止所有匹配名称的进程。killall -9 python # 强制终止所有名为 "python" 的进程
3. 进程优先级
-
nice
启动进程时指定优先级(范围:-20 最高优先级,19 最低)。nice -n 10 command # 以较低优先级运行命令
-
renice
修改已运行进程的优先级。renice -n 5 -p PID # 修改指定 PID 的优先级为 5
4. 后台进程管理
-
&
将进程放到后台运行。command & # 后台运行命令
-
jobs
查看当前终端后台任务。jobs -l # 显示后台任务及其 PID
-
fg
/bg
将任务切换到前台(fg
)或继续后台运行(bg
)。fg %1 # 将任务 1 切换到前台 bg %2 # 将任务 2 继续在后台运行
-
nohup
退出终端后仍保持进程运行。nohup command & # 忽略 SIGHUP 信号,日志默认写入 nohup.out
5. 进程搜索
pgrep
根据名称查找进程 PID。pgrep -u root nginx # 查找 root 用户的 nginx 进程 PID
6. 监控工具
-
vmstat
查看系统资源使用情况(CPU、内存、IO 等)。vmstat 1 # 每秒刷新一次
-
pidstat
(需安装sysstat
)
监控进程的 CPU、内存等资源占用。pidstat -p PID 1 # 每秒监控指定 PID
7. 其他实用命令
-
lsof
列出被进程打开的文件。lsof -i :80 # 查看占用 80 端口的进程 lsof -p PID # 查看指定 PID 打开的文件
-
strace
跟踪进程的系统调用。strace -p PID # 跟踪进程的系统调用(调试用)
常见场景示例
-
终止失控的进程
ps aux | grep "bad_process" # 查找 PID kill -9 PID
-
后台运行并保存日志
nohup python script.py > output.log 2>&1 &
-
监控高 CPU 进程
top -o %CPU # 按 CPU 使用率排序
掌握这些命令后,你可以高效地管理 Linux 系统中的进程。如果需要更详细的信息,可以通过 man 命令名
(如 man ps
)查看手册。