当前位置:首页>Linux>Linux 进程管理实战SSH 一断程序就没了?三个命令解决这个烦恼

Linux 进程管理实战SSH 一断程序就没了?三个命令解决这个烦恼

  • 2026-10-11 06:38:30
Linux 进程管理实战SSH 一断程序就没了?三个命令解决这个烦恼

Linux 进程管理实战

SSH 一断程序就没了?三个命令解决这个烦恼

Linux基础  实战课 

Linux 基础实战课 · 进阶篇

————————————————

💬 有次做 VDI 系统升级,需要跑一个长达 40 分钟的数据库迁移脚本。我在 SSH 终端敲下命令,看着进度条在走,中途去喝了杯水——回来一看,SSH 断连了,脚本也停了,进度归零。

那一刻我就学会了两个命令:nohup 和 ps。一个是「断开连接也别停」,一个是「让我看看现在什么在跑」.

今天这篇把进程管理的三个核心动作讲透:查进程、杀进程、后台跑任务。

————————————————

一、查进程:ps 一把梭

ps 是 process status 的缩写。最常用的版本是:

ps aux

查看所有用户的全部进程(最常用)

输出字段含义:

字段

含义

USER

哪个用户启动的

PID

进程 ID,每个进程的唯一编号

%CPU

CPU 使用率

%MEM

内存使用率

STAT

状态:S=休眠 R=运行 Z=僵尸

COMMAND

是什么命令启动的

快速定位目标进程:

ps aux | grep nginx

找 nginx 相关进程

ps aux | grep mysql

找 mysql 相关进程

配合 sort 找出吃资源最多的进程:

ps aux --sort=-%mem | head -5

内存占用前 5 名

ps aux --sort=-%cpu | head -5

CPU 占用前 5 名

二、杀进程:kill 信号量表

知道 PID 就能杀掉进程。kill 这个名字有点误导——它不一定是杀死,而是「发信号」。

信号

效果

使用场景

kill -15

优雅关闭(给程序机会善后)

首选,程序会做清理工作

kill -9

强制杀死(内核直接回收)

杀手锏,卡死的时候用

kill -1

重新加载配置(不重启进程)

改完配置用这个,不停服务

实战写法:

ps aux | grep nginx

先找到 nginx 的 PID

kill PID

默认发 -15,优雅关闭

kill -9 PID

还是不退?强制杀

pkill -f nginx

按名字杀(不用找 PID)

⚠️ kill -9 是最后手段。程序没机会清理临时文件、释放锁、保存状态。能用 kill(默认 -15)解决的问题,别直接上 -9。

三、后台运行:nohup 和 & 的区别

很多人以为加个 & 就够了:

./backup.sh &

放到后台运行

但 SSH 断开后,& 启动的后台进程会收到 SIGHUP 信号,然后退出。这就是我翻车那次的原因。

解决方案是 nohup(no hang up):

nohup ./backup.sh &

断开终端也不退出

nohup ./backup.sh > backup.log 2>&1 &

把输出记到日志(推荐)

💡 不指定输出文件的话,nohup 默认输出到 nohup.out。跑多个脚本时会混在一起,所以最好显式指定日志文件名。

如何查看后台任务?

jobs

查看当前终端的后台任务

fg %1

把 1 号后台任务调回前台

bg %1

把暂停的 1 号任务放到后台继续跑

后台任务编号(%1, %2...)只在当前终端有效。nohup 启动的进程不受影响——你 Ctrl+C 关闭终端它照样在跑。

四、实战:标准排查流程

场景:服务器 CPU 突然飙升到 99%。按这个顺序查:

① 找谁在吃 CPU:

ps aux --sort=-%cpu | head -5

CPU 前 5 名

② 看整体负载:

uptime

1 分钟、5 分钟、15 分钟平均负载

③ 盯住某个进程的资源:

ps -p PID -o %cpu,%mem,cmd

看特定 PID 的资源

④ 如果是预期外的进程,先优雅关:

kill PID

发 -15 信号

⑤ 还不退就强制杀:

kill -9 PID

最后一次机会

这套流程在 VDI 项目里救过我很多次——某台桌面云服务器突然卡,SSH 上去 ps aux 一看,一个 Java 进程吃了 14GB 内存,kill 掉马上恢复正常。

————————————————

下篇预告:《Linux 防火墙入门:端口开不了?先看看防火墙拦了没有》

💬 你遇到过最头疼的进程卡死是什么情况?

是怎么解决的?评论区分享一下你的「杀进程」经历

👍 点赞💬 留言🔄 转发给需要的朋友

有问题欢迎评论区留言,看到都会回复

最新文章

随机文章