今天在服务器上进行深度学习训练的时候,发现已经结束程序代码,但是GPU还是显示显存在运行。
为了解决这些问题,网上查找了大量的资料,发现是因为僵尸进程的原因,因此记录相关的解决步骤,方便自己和大家。
如何杀死僵尸进程
要杀死僵尸进程,通常需要找到僵尸进程的父进程,然后使用kill命令杀死父进程。以下是具体的步骤:
- 使用ps命令查看僵尸进程,使用
ps
命令查看系统中所有进程的状态信息
ps aux | grep 'Z'
- 确定僵尸进程的相关信息:
- 使用
ps
命令获取僵尸进程的详细信息,包括父进程ID(PPID)、进程ID(PID)以及命令行等。
可以使用
ps -e -o stat,ppid,pid,cmd | egrep [Zz]
来筛选出僵尸进程。
3.杀死僵尸进程的父进程:
找到僵尸进程的父进程ID(PID),可以使用
cat /proc/PID/status
来查看僵尸进程的父进程ID。
4.处理孤儿进程:
如果父进程是init进程,则不能直接杀死父进程,因为这可能会导致系统崩溃。
在这种情况下,可以尝试将僵尸进程挂起,使其不会占用系统资源,直到init进程回收它们。
可以使用
kill -HUP PID
来挂起进程。