易君召
易君召
发布于 2026-10-22 / 5 阅读
0

Linux 进程管理常用命令

按查看 → 筛选 → 控制 → 优先级 → 后台任务分类,附带常用参数、示例和说明,适合直接复制使用。

说明:Linux 进程号叫 PID;PPID 是父进程 ID。

一、查看进程

1. ps(静态快照,一次性查看)

# 常用组合,查看所有进程(BSD风格,不带横杠)
ps aux

# Unix风格
ps -ef

# 只看某个进程,比如 java
ps aux | grep java

字段说明(ps aux):

  • USER:进程所属用户

  • PID:进程 ID

  • % CPU:CPU 占用

  • % MEM:内存占用

  • VSZ:虚拟内存

  • RSS:实际物理内存

  • TTY:终端

  • STAT:进程状态

    • R 运行、S 睡眠、D 不可中断睡眠、Z 僵尸进程、T 停止

  • START:启动时间

  • TIME:累计 CPU 时间

  • COMMAND:启动命令

# 树形展示进程父子关系
ps auxf

2. top /htop(动态实时监控)

top

top 快捷键:

  • P 按 CPU 排序

  • M 按内存排序

  • k 输入 PID 杀进程

  • q 退出

  • 1 展开多核 CPU

htop 更友好(需要安装):

# Debian/Ubuntu
apt install htop
# CentOS/RHEL
yum install htop
htop

3. pgrep(只查 PID,适合脚本)

# 查找nginx的pid
pgrep nginx
# 连同进程名一起输出
pgrep -a nginx
# 按用户查进程
pgrep -u root

4. pstree(进程树)

pstree
# 带PID
pstree -p

二、查找进程端口对应关系(非常常用)

# 推荐(现代替代 netstat),查看监听端口+进程
sudo ss -tulnp
# 查8080端口占用
sudo ss -tulnp | grep :8080

# lsof(需要安装)
sudo lsof -i :8080

# fuser 直接查端口PID
fuser 8080/tcp

三、发送信号、终止进程(kill /killall/pkill)

Linux 靠信号控制进程,不是直接 “删除”。 常用信号:

  • 1 SIGHUP:重新加载配置(平滑重启,很多服务支持)

  • 9 SIGKILL:强制杀死,不能被捕获、不能忽略(慎用)

  • 15 SIGTERM:优雅终止(默认,优先使用,让进程清理资源)

  • 2 SIGINT:Ctrl+C

# 优雅关闭 PID 1234(推荐默认)
kill 1234
# 等价
kill -15 1234

# 强制杀(进程卡死、不响应15信号才用)
kill -9 1234

# pkill:按进程名杀
pkill nginx
# 优雅重载配置
pkill -HUP nginx

# killall:按名字杀(部分系统默认没有)
killall java

⚠️ 优先 kill(15),不要上来就 -9;僵尸进程无法被 kill -9,只能杀父进程。

四、进程优先级 nice /renice

nice 值范围:-20 ~ 19

  • 越小优先级越高;root 才能设负数

  • 默认:0

# 启动命令时指定优先级,nice 5
nice -n 5 ./myapp

# 修改已经运行的进程PID 1234,调高优先级(root)
renice -n -5 -p 1234
# 调低优先级
renice 10 -p 1234

五、前台、后台任务管理(jobs /bg/fg / &)

# & 放到后台运行
./long-task.sh &

# 查看当前shell的后台任务列表
jobs

# 把后台任务编号2切回前台
fg %2

# 前台进程按 Ctrl+Z 暂停,放到后台暂停状态,然后 bg 继续跑
Ctrl+Z
bg %2

# 杀掉后台任务
kill %2

jobs 只对当前终端会话生效;关闭终端后任务会收到 SIGHUP 退出。 如果需要脱离终端持久运行:nohup / screen / tmux / systemd

# nohup 脱离终端,输出写入 nohup.out
nohup ./app.sh &

六、/proc 目录(内核原生进程信息)

/proc/<PID>/ 是进程的虚拟文件:

# 查看进程命令行
cat /proc/1234/cmdline
# 查看进程环境变量
cat /proc/1234/environ
# 查看打开的文件句柄
ls /proc/1234/fd

七、常用运维速查表

目标

命令

看所有进程

ps aux

实时监控

top / htop

根据名字找 PID

pgrep -a java

端口查进程

ss -tulnp

优雅停止

kill PID

强制停止

kill -9 PID

按名字杀进程

pkill xxx

后台运行

cmd &

后台任务列表

jobs

切前台

fg %N

暂停任务继续跑

bg %N

修改运行中优先级

renice

八、典型排障流程示例

  1. 服务端口占用:ss -tulnp | grep 8080 → 拿到 PID

  2. 看这个进程资源:top -p PID

  3. 看启动命令:cat /proc/PID/cmdline

  4. 尝试优雅关闭:kill PID

  5. 等几秒,进程还在 → kill -9 PID


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/linux-process-management-common-commands

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/