linux 僵尸进程 关闭看不见的进程

2023-12-14 00:22:17

多卡训练,如果显存不够,程序会崩溃退出,但是gpu显存会一直占用。

nvidia-smi看不到相关进程,关闭进程方法:

目录

查找 NVIDIA 设备相关文件的进程:

查询入口文件并关闭进程

查询进程:

关闭方法 1: 使用?pkill

方法 2: 使用?ps,?grep?和?awk?结合?kill


查找 NVIDIA 设备相关文件的所有进程:


您可以使用?lsof?命令查找所有打开了与 NVIDIA 设备相关文件的进程:

sudo lsof /dev/nvidia*

关闭进程:

kill -9 pid

sudo kill -9 pid

查询入口文件并关闭进程

ps aux | grep "train_70.py"

pkill -f train_70.py

查询进程:

ps aux | grep python3

关闭方法 1: 使用?pkill

pkill?命令允许你根据程序名称和其他属性来发送信号。如果你想要结束所有名为?train_v5lite_70.py?的进程,可以使用:

pkill -f train_70.py

这里?-f?选项告诉?pkill?匹配整个命令行,而不仅仅是进程名。这很重要,因为?train_v5lite_70.py?可能不是进程名,而是命令行的一部分。

方法 2: 使用?ps,?grep?和?awk?结合?kill

如果你想要更精确地控制哪些进程被结束,或者你的系统不支持?pkill,可以使用?ps,?grep, 和?awk?来获取进程ID,并将它们传递给?kill?命令:

ps aux | grep "train_v5lite_70.py" | awk '{print \$2}' | xargs kill

这个命令的组成部分如下:

  • ps aux | grep "train_v5lite_70.py"?会找出所有包含?train_v5lite_70.py?的进程。
  • awk '{print \$2}'?会打印出每一行的第二列,即进程ID (PID)。
  • xargs kill?会将?awk?获取的每个 PID 作为参数传递给?kill?命令,从而结束这些进程。

如果进程拒绝结束,你可以使用?kill -9?强制结束它们,但请注意这是一个粗暴的方法,可能会导致数据丢失或其他问题:

ps aux | grep "train_v5lite_70.py" | awk '{print \$2}' | xargs kill -9

在执行任何强制结束命令之前,请确保你了解可能的后果,并确认这些进程可以安全地结束。

文章来源:https://blog.csdn.net/jacke121/article/details/134816450
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。