我已经find
在docker中一个非常大的文件夹上运行了一个命令,现在它卡住了一个多小时。
我尝试过kill -9
该过程,并使用 终止 docker 容器docker kill <containerid>
,但没有任何方法可以帮助它移动。我无法在 docker 中运行任何命令。主机响应非常快。
进程状态为R
(正在运行)。我无法strace
执行(strace stucks),并且kill -9
对其没有任何影响。
我尝试查看该/proc/PID/status
文件,它显示:
State: R (running)
[...]
voluntary_ctxt_switches: 2387
nonvoluntary_ctxt_switches: 29121
最后两个数字增长得相当快。
我不太关心那个docker容器或者find命令的结果,但我关心同一台主机上的其他容器。
有没有办法在不重新启动主机的情况下消灭进程或容器?
答案1
当你构建 Docker 时,使用以下命令:
RUN apt-get install lsof
然后在 py 文件中可以使用:
os.system("lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}")
记住:此命令将终止 GPU 上的所有进程