终止进程后,GPU显存仍被占用问题: kill -9彻底杀死进程 | ps aux|grep python | 怎么确认僵尸进程?

本文部分内容参考博客,十分感谢!!!
问题描述:在Linux终端把进程终止后,发现显存没有被释放出来!
bx

Figure 1

显示所有进程

ps aux|grep python 

这个命令是在Linux操作系统中使用的,用于列出当前运行的进程,并通过管道(|)将其结果传递给grep命令来筛选包含特定文本的行。具体来说,ps aux | grep 命令的各个部分以及它们的含义为

ps: 这是一个用于显示当前正在运行的进程的命令。它的名称来自"Process Status"(进程状态)的缩写。

aux: 这是ps命令的选项,用于指定要显示的进程的详细信息。具体含义如下:

a: 显示所有用户的进程,而不仅仅是当前用户的进程。
u: 显示详细的进程信息,包括用户、CPU使用率、内存使用率等。
x: 显示不与终端相关的进程,通常用于显示后台进程。
|: 这是管道符号,用于将ps aux的输出传递给下一个命令,也就是grep。

grep: 这是一个用于在文本数据中搜索指定模式或字符串的命令。
grep后面一般加关键字,以表示需要展示的相关进程(就比如ps aux|grep python命令,它将展示关键字为python的进程,如Fig.2所示)

在Fig.2(下图为Fig.2的部分截图)中,ps aux | grep python 命令列出了关键字为python的相关进程的详细信息。以倒数第一行(PID为62363)进程为例,讲述每个列的具体含义:
在这里插入图片描述

root: 进程的用户名,表示这个进程是由用户名为 “root” 的用户启动的。

62363: 进程的进程号(PID),是操作系统为每个进程分配的唯一标识符。

2.1: 进程的CPU使用率。这个值表示进程在一段时间内占用了 CPU 时间的百分比。

0.6: 进程的内存使用率,表示进程占用的物理内存百分比。

49088180: 进程的虚拟内存大小,以字节为单位。这是进程能够访问的总内存量,包括实际物理内存和交换空间。

3645904: 进程的物理内存大小,以字节为单位。这是实际占用的物理内存量。

pts/11: 进程的终端信息。PTS,简称伪终端(Pseudo Terminal),这个伪终端通常以 pts/N 的形式命名,其中 N 是一个数字,表示该伪终端的唯一标识符。所以,pts/11 表示系统上的第11个伪终端。

T1: 进程的状态。Stopped,T1是进程被停止或暂停。

12.18: 进程的启动时间,以小时和分钟表示。

0.57: 进程的累计CPU时间,表示进程自启动以来已经使用的CPU时间,以小时和分钟表示。

run_cdm.py task_names FB15K237 d_multiple 1 d_min_ratio 1: 进程的命令行。这是启动进程时使用的命令,可以告诉你进程正在执行的任务或程序。

杀死单个进程

kill -9 PID

杀死多个进程

kill -9 PID PID PID...

根据关键字批量杀死进程

pkill -9 python

Figure 2

Figure 2

结果如下,显存已经被释放出来了!

在这里插入图片描述

Figure 3

僵尸进程

有时候在面对相同的运行命令时,你无法通过命令的区别来找出僵尸进程。这时候就对进程的 进程状态(STST) 字段进行判断了!

  • R:Running,表示进程正在运行。
  • T:Stopped,表示进程被停止或暂停。
  • S:Sleeping,表示进程处于等待状态。
  • Z:Zombie,表示进程是僵尸进程。

在这里插入图片描述

列出的进程状态包括:

  • Rl+ 表示进程 54710 正在运行且处于前台会话中。
  • Tl 表示进程 55079 被暂停但也在前台会话中。
  • Sl+ 表示进程 65422 处于睡眠状态但有一些 I/O 运行。

由此,我们可以得知进程 55079 是僵尸进程!
将其vkill 掉即可释放GPU显存。

在这里插入图片描述

### 解释 Linux 命令 命令 `'kill -9 $(ps -ef | grep -v grep | grep sshd | awk '{print $2}')'` 是用于终止特定条件下的进程。下面逐部分解析该命令: #### 1. `ps -ef` 此命令显示所有正在运行的进程及其相关信息,包括用户ID、进程ID(PID)、父进程ID以及启动这些进程所使用的命令字符串[^1]。 #### 2. `grep -v grep` 过滤掉由前一个 `grep` 操作本身产生的匹配项。因为当执行 `ps aux | grep something` 时,不仅会找到目标程序还会把当前这个 `grep` 进程也列出来;加上 `-v` 参数可以排除含有关键字 “grep”的行[^3]。 #### 3. `grep sshd` 筛选出包含关键词 `"sshd"` 的那些行,即与 SSH 守护进程有关联的信息记录[^4]。 #### 4. `awk '{print $2}'` 提取每条符合条件的日志中的第二个字段——也就是进程 ID (PID)。 #### 5. `xargs kill -9` 收集来自标准输入的数据作为参数传递给后续命令,在这里是指将前面获取到的一系列 PID 提供给 `kill -9` 来强制结束对应的进程实例。注意这里的写法有误,实际应用中应先完成整个管道表达式的构建再将其结果传入 `kill` 中处理,正确形式应该是使用 `$()` 或反引号 `` `...` `` 将上述指令包裹起来形成单一命令串供 `kill` 使用[^2]。 综上所述,这条命令的功能是从系统中查找所有名为 `sshd` 的非自身 `grep` 流水线创建的服务端口,并立即无条件地中止它们的操作。不过需要注意的是直接采用这种方式可能会带来风险,建议谨慎操作以免影响系统的正常运作。 ```bash kill -ef | grep -v grep | grep sshd | awk '{print $2}') ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eeeasyFan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值