问题描述
在自己电脑上或Linux服务器上是不是经常看到这个页面,进程很多,但是进入进程详细信息就会发现明明进程老早就停止了,但是还是在占用内存???强迫症的真受不了,还影响把自己深度下去!!!下面的教程帮你解决这个问题。
那么,怎么看确定进程有没有运行结束呢?
①第一个方法是可以过上几分钟输入下面的命令,看【TIME】的数值有没有增加,有增加一般就是在运行,如果没有增加那就是结束了。
注意,这里的【TIME】是累积CPU的时间,而不是程序开始运行的时间,如果想看进程实际运行时间,需要看下面的方法二。
②第二个方法是用查看进程实际的运行时间。
命令如下:
查看进程运行时间的代码是:
ps -eo pid,lstart,etime | grep PID
例如:我想查看演示进程PID=14143的开始时间和运行时间,就可以这样输入
ps -eo pid,lstart,etime | grep 14143
显示结果为:
但是输入【nvidia-smi】看到【PID】,然后再输入【ps u PID】的显示却是:
这里就出现不一样了~~~
所以,查看进程的实际运行时间需要下面的,不要输错了哦
ps -eo pid,lstart,etime | grep PID
原因分析:
好了,上述提到的进程是僵尸进程,占着空不干事,应kill!
我理解的僵尸进程是:进程之前运行过,但是代码出问题之后不自动取消显示,还显示在nvidia显示面板上
这就需要对这些僵尸进程进行处理~~~
解决方案:
杀死僵尸进程需要是管理员账号!!!
如果你不是管理员账号,那你只能干看着了
首先,需要切换到管理员(这里默认为【user】)账号。普通用户输入下面命令可以切换:
【如果已经登入管理员账号,本步骤可以忽略,直接进行杀死僵尸进程】
su user
然后提示你输入管理员账号的密码,输入即可。注意,这里是保密机制,不会显示你的输入。
然后,使用下面的命令杀死僵尸进程;
sudo kill -9 僵尸进程PID
随后,再次出现类似这种显示,就说明成功了。再次输入【nvidia-smi】就发现僵尸进程没了!
完整的流程如下图:
好了,大功告成,完结撒花!
欢迎关注、点赞、收藏、评论、分享给好友,一起学习有趣的新知识!!!