Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux进程管理命令

Linux下进程管理的常用命令速查表

作者:detayun

在 Linux 系统里,进程就是正在运行的程序实例,本文将系统介绍Linux进程管理的常用命令,涵盖进程查看、查找、终止、前后台控制、资源关联分析及/proc信息获取,希望对大家有所帮助

前言

在 Linux 系统里,进程就是正在运行的程序实例。我们启动的 Nginx、MySQL、Java 服务、脚本,每一个都会产生进程。服务器运维、线上排查卡顿、端口占用、服务假死,几乎都要和进程打交道。很多新手遇到服务起不来、端口被占、CPU 内存飙升,第一步就是查看进程。本篇整理日常运维高频的进程相关命令,包含查看、筛选、终止、监控、后台任务,适合日常排查和学习。

一、进程基础概念

简单理解:程序是磁盘上的静态文件,进程是程序运行起来的动态实体。

二、查看进程

1. ps 静态查看(快照,不会实时刷新)

ps 是查看进程快照的命令,最常用两个组合:

# 查看当前终端下的进程
ps

# 最常用:查看所有进程,完整信息
ps -ef
# UID:用户 PID:进程ID PPID:父PID CMD:启动命令

# BSD风格,看CPU、内存占比(运维高频)
ps aux

ps aux 字段说明:

搭配grep筛选进程(经典组合)

ps aux | grep nginx

小坑:这条命令会把grep本身这个进程也搜出来。

2. top 实时进程监控(动态刷新)

top 是服务器排查CPU、内存爆满的神器,默认3秒刷新一次

top

常用交互快捷键(进入top之后按)

3. htop(增强版top,更友好,需要安装)

top界面简陋,很多服务器会装htop,彩色、鼠标支持,操作直观

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

4. pstree 进程树,看父子关系

可以直观看到进程父子层级,排查孤儿进程、僵尸进程很好用

pstree
# 同时显示PID
pstree -p
# 显示用户名
pstree -up

三、查找进程:pidof / pgrep

不用写grep,直接拿到PID,写脚本的时候非常方便

# pidof:根据程序名拿PID
pidof nginx

# pgrep:筛选进程
pgrep nginx
# 同时输出用户名+PID
pgrep -u root -l nginx

四、终止进程 kill / killall / pkill

提醒:杀进程优先使用温和信号,不要上来就-9强杀!

kill 是给进程发送信号,常用信号:

# 优雅停止(推荐)
kill 12345
# 等价 kill -15 12345

# 强制杀死(迫不得已再用)
kill -9 12345

killall:按进程名杀所有同名进程

killall nginx
killall -9 nginx

pkill:和pgrep配套,按名字、用户筛选后杀进程

# 杀掉所有nginx进程
pkill nginx
# 杀掉testuser用户所有进程
pkill -u testuser

五、前后台任务:&、jobs、fg、bg、nohup

写脚本、跑长时间任务必用,脱离终端运行

# &:放到后台运行,终端关闭进程也会跟着退出
python test.py &

# jobs:查看当前终端后台任务
jobs

# bg:把暂停的任务放到后台继续跑
bg %1
# fg:把后台任务拉回前台
fg %1

nohup:让进程脱离当前终端,关闭ssh连接也继续运行

# 标准写法,输出日志到nohup.out
nohup python test.py &
# 指定日志文件
nohup python test.py > run.log 2>&1 &

补充:screen / tmux 也是会话持久方案,适合交互式任务。

六、查看进程打开文件、端口 lsof / ss

很多时候我们想知道进程开了哪些端口、打开了什么文件

# 查看某个PID打开的所有文件
lsof -p 12345
# 查看占用某个端口的进程
lsof -i :80

ss(替代老旧的netstat)查看端口和进程

# 查看监听端口
ss -tulnp

七、/proc 内核进程信息

Linux一切皆文件,每个进程在 /proc/PID 下都有目录,记录进程原生信息

# 查看进程启动命令
cat /proc/12345/cmdline
# 查看进程环境变量
cat /proc/12345/environ
# 查看进程当前工作目录
ls -l /proc/12345/cwd

八、常见问题与实操建议

  1. 发现CPU占用很高:top 按P排序,定位PID,再看程序日志
  2. 内存持续上涨:先看 top 或者 htop,判断是否内存泄漏
  3. 端口被占用:ss -tulnp / lsof -i:端口 找到PID再处理
  4. 尽量优先 kill PID(15信号),-9强杀容易造成数据库、文件损坏
  5. 僵尸进程Z:kill 子进程无效,需要处理父进程;父进程退出后僵尸一般会被systemd回收
  6. nohup后台任务,不要直接ctrl+c,会终止程序

小结

进程是Linux运维里非常核心的一块,配合前面学的权限、文件查找命令,基本可以覆盖服务器大部分故障排查场景。

以上就是Linux下进程管理的常用命令速查表的详细内容,更多关于Linux进程管理命令的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文