教你解决Linux中结束运行的后台僵尸进程

电脑教程 次浏览手机阅读

原标题:"处理Linux中结束运行的后台僵尸进程的方法"的相关电脑教程资料分享。- 191路由网编辑整理。

  Linux系统是很多的小伙伴在安装使用的系统,那我们在运行程序的时候最不喜欢的就是没有开启的程序在后台一直占用我们的空间,这样是会拖慢的我们的程序的,有小伙伴遇到电脑中持续消耗资源的僵尸进程想要设置关闭,那我们怎么操作呢,一起来看看处理Linux中结束运行的后台僵尸进程的方法。
处理Linux中结束运行的后台僵尸进程的方法

  具体的方法和详细的步骤如下;

  僵尸进程如何产生的?

  当你运行一个程序时,它会产生一个父进程以及很多子进程。 所有这些子进程都会消耗内核分配给它们的内存和 CPU 资源。

  这些子进程完成执行后会发送一个 Exit 信号然后死掉。这个 Exit 信号需要被父进程所读取。父进程需要随后调用 wait 命令来读取子进程的退出状态,并将子进程从进程表中移除。

  若父进程正确第读取了子进程的 Exit 信号,则子进程会从进程表中删掉。

  但若父进程未能读取到子进程的 Exit 信号,则这个子进程虽然完成执行处于死亡的状态,但也不会从进程表中删掉。

  僵尸进程对系统有害吗?

  不会。由于僵尸进程并不做任何事情, 不会使用任何资源也不会影响其它进程, 因此存在僵尸进程也没什么坏处。 不过由于进程表中的退出状态以及其它一些进程信息也是存储在内存中的,因此存在太多僵尸进程有时也会是一些问题。

  你可以想象成这样:

  “你是一家建筑公司的老板。你每天根据工人们的工作量来支付工资。 有一个工人每天来到施工现场,就坐在那里, 你不用付钱, 他也不做任何工作。 他只是每天都来然后呆坐在那,仅此而已!”

  这个工人就是僵尸进程的一个活生生的例子。但是, 如果你有很多僵尸工人, 你的建设工地就会很拥堵从而让那些正常的工人难以工作。

  那么如何找出僵尸进程呢?

  打开终端并输入下面命令:

  ps aux | grep Z

  ps aux | grep Z

  会列出进程表中所有僵尸进程的详细内容。

  僵尸进程怎么杀?

  正常情况下我们可以用 SIGKILL 信号来杀死进程,但是僵尸进程已经死了, 你不能杀死已经死掉的东西。 因此你需要输入的命令应该是

  01kill -s SIGCHLD pid

  复制代码

  kill -s SIGCHLD pid

  将这里的 pid 替换成父进程的进程 id,这样父进程就会删除所有以及完成并死掉的子进程了。

  你可以把它想象成:

  “你在道路中间发现一辆废弃的汽车,于是你联系了拖车,之后拖车就会将这辆废弃的汽车带离道路。”

  通过本次的分享小伙伴们知道了我们没有在用的程序一直在后台占用资源就是我们说的僵尸进程了,那想要加速电脑运行的小伙伴快试试处理Linux中结束运行的后台僵尸进程的方法。

喜欢 ()