关闭深度学习训练/推理进程的方法

引言

设想有一种情况,在ssh服务器训练/推理的时候,突然断线,再次打开ssh的时候,发现后台在运行,此时无法使用 ctrl+c 终止,从而,可以用一个很简单的办法来结束:手动关闭进程。

方法

输入 nvidia-smi,看到:

这个PID就是进程的编号,但目前面临一个问题,如图所示,有2个训练/推理的进程,我们不知道“到底哪个进程是需要关闭的”,所以,需要大概回忆一下,我们是什么时候开始训练/推理的,然后查看这两个进程开启的时间,这样就能对应上了。

在终端输入:

import psutil

# 获取要查询的进程的进程 ID
pid = 159957

# 获取进程对象
process = psutil.Process(pid)

# 获取进程创建时间
create_time = process.create_time()

# 将时间戳转换为可读的时间格式
from datetime import datetime
create_time_str = datetime.fromtimestamp(create_time).strftime('%Y-%m-%d %H:%M:%S')

# 输出进程创建时间
print("进程 %d 的创建时间是 %s" % (pid, create_time_str))

可以看到输出:进程 159957 的创建时间是 2023-07-30 12:37:33

如果能对应上,那说明这个进程就是需要kill的,如果不能,那就是另一个。

接着,在终端输入:

import os
import signal

# 获取要关闭的进程 ID
pid = 159957

# 发送 SIGTERM 信号终止进程
os.kill(pid, signal.SIGTERM)

搞定。

你可能感兴趣的:(机器学习/深度学习,Python,深度学习,人工智能,python,linux)