在跑模型训练推理的时候,经常会遇到python进程残留,导致GPU一直被占用。使用这条组合命令,快速清空显存占用,方便进行其他任务。
ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill -9
这行命令可以终止所有名为"python"的进程的命令行语句。下面是对这条命令的逐部分解释:
ps -ef
:ps
是 “process status” 的缩写,用于显示当前运行的进程。-e
选项代表显示所有进程。-f
选项代表完整格式列表,显示用户、PID(进程ID)、CPU使用率等信息。
|
:- 这是管道操作符,用于将前一个命令的输出作为后一个命令的输入。
grep python
:grep
是 “global regular expression print” 的缩写,用于搜索包含指定模式的字符串。python
是搜索的关键词,这里用于找出所有命令行中包含 “python” 的进程。
grep -v grep
:-v
选项代表反转匹配,即选择不包含模式的行。- 这一步是为了排除
grep
命令自身,因为grep
命令在搜索的时候也会出现在进程列表中。
awk '{print $2}'
:awk
是一种文本处理工具,用于处理和格式化文本。{print $2}
是一个awk
的动作,表示打印每一行的第二个字段。- 在
ps -ef
的输出中,第二个字段是进程的 PID。
xargs kill -9
:xargs
是一个构建和执行命令行参数的工具,它可以将输入数据转换为命令行参数。kill -9
是用于发送信号强制终止进程的命令。-9
是发送给进程的信号编号,代表强制终止。
将以上命令组合起来,这条命令的作用就是:
- 列出所有进程。
- 筛选出命令行中包含 “python” 的进程。
- 排除
grep
自身。 - 提取这些进程的 PID。
- 将这些 PID 作为参数传递给
kill -9
命令,从而强制终止这些进程。
请注意,使用kill -9
强制终止进程可能会导致数据丢失或系统不稳定,因此应该谨慎使用。在终止进程之前,最好先尝试使用kill
命令(不带-9
)来发送一个终止信号,给进程一个清理和正常退出的机会。