- 体系光盘下载网站!

| | | |
网站导航
当前位置: > > > 具体页面-澳门金沙91599com-金沙澳门88128cc

linux体系怎样清算和制止僵尸历程?-www.澳门金沙6088.com-澳门金沙91599com

工夫:2018-03-01 泉源:体系之家 作者:chunhua

  linux 怎样清算僵尸历程?一些同伙正在保护服务器的时刻,发现有5个nova-novncproxy的僵尸历程,面临这些僵尸历程,我们该怎样应对呢?实在也不难,上面小编教人人查杀和制止僵尸历程。

  1. 0126327 ? S 0:05 \_ /usr/bin/python /usr/bin/nova-novncproxy --config-file=/etc/nova/nova.conf
  2. 024765 ? Z 0:00 \_ [nova-novncproxy] <defunct>
  3. 034766 ? Z 0:00 \_ [nova-novncproxy] <defunct>
  4. 044767 ? Z 0:00 \_ [nova-novncproxy] <defunct>
  5. 054768 ? Z 0:00 \_ [nova-novncproxy] <defunct>
  6. 064769 ? Z 0:00 \_ [nova-novncproxy] <defunct>
复制代码
26327 ? S 0:05 \_ /usr/bin/python /usr/bin/nova-novncproxy --config-file=/etc/nova/nova.conf 4765 ? Z 0:00 \_ [nova-novncproxy] <defunct> 4766 ? Z 0:00 \_ [nova-novncproxy] <defunct> 4767 ? Z 0:00 \_ [nova-novncproxy] <defunct> 4768 ? Z 0:00 \_ [nova-novncproxy] <defunct> 4769 ? Z 0:00 \_ [nova-novncproxy] <defunct>

  界说:

  In UNIX System terminology, a process that has terminated,but whose parent has not yet waited for it, is called a zombie.

  正在UNIX 体系中,一个历程完毕了,然则他的女历程没有守候(挪用wait / waitpid)他, 那么他将酿成一个僵尸历程。 正在fork()/execve()历程中,假定子历程完毕时女历程仍存在,而女历程fork()之前既出安装SIGCHLD旌旗灯号处置惩罚函数挪用 waitpid()守候子历程完毕,又没有隐式疏忽该旌旗灯号,则子历程成为僵尸历程。

  怎样检察linux体系上的僵尸历程,怎样统计有若干僵尸历程?

  1. 01#ps -ef | grep defunct
复制代码-www.金沙3777.com
#ps -ef | grep defunct

  大概查找状况为Z的历程,Z就是代表zombie process,僵尸历程的意义。

  别的运用 下令检察时有一栏为S,若是状况为Z阐明它就是僵尸历程。

  1. 01Tasks: 95 total, 1 running, 94 sleeping, 0 s ped, 0 zombie
复制代码
Tasks: 95 total, 1 running, 94 sleeping, 0 s ped, 0 zombie

   下令中也统计了僵尸历程。大概运用上面的下令:

  1. 01ps -ef | grep defunct | grep -v grep | wc -l
复制代码
ps -ef | grep defunct | grep -v grep | wc -l

  怎样杀死僵尸历程呢?

  一样平常僵尸历程很易间接kill失落,不外您能够kill僵尸爸爸。女历程死后,僵尸历程成为”孤儿历程”,过继给1号历程init,init始终会卖力清算僵尸历程.它发生的一切僵尸历程也随着消逝。

  1. 01ps -e -o ppid,stat | grep Z | cut -d” ” -f2 | xargs kill -9
复制代码
ps -e -o ppid,stat | grep Z | cut -d” ” -f2 | xargs kill -9

  或

  1. 01kill -HUP `ps -A -ostat,ppid | grep -e ’^[Zz]‘ | awk ’{print $2}’`
复制代码-www.澳门金沙6088.com
kill -HUP `ps -A -ostat,ppid | grep -e ’^[Zz]‘ | awk ’{print $2}’`

  固然您能够本身编写更好的shell剧本,接待取人人分享。

  我将nova-novncproxy s 后再start,僵尸历程即消逝,问题解决。

  别的子历程死后,会发送SIGCHLD旌旗灯号给女历程,女历程收到此旌旗灯号后,实行waitpid()函数为子历程收尸。就是基于如许的道理:就算女历程没有挪用wait,内核也会背它发送SIGCHLD新闻,而此时,只管对它的默许处置惩罚是疏忽,若是念相应这个消息,能够设置一个处置惩罚函数。

  怎样制止僵尸历程呢?

  处置惩罚SIGCHLD旌旗灯号其实不是必需的。但关于某些历程,特别是服务器历程每每正在恳求到来时天生子历程处置惩罚恳求。若是女历程不等待子历程完毕,子历程将成为僵尸历程(zombie)从而占用系统资源。若是女历程守候子历程完毕,将增添女历程的肩负,影响服务器历程的并发机能。正在Linux下 能够简朴天将 SIGCHLD旌旗灯号的操纵设为SIG_IGN。

  signal(SIGCHLD,SIG_IGN);

  如许,内核正在子历程完毕时不会发生僵尸历程。这一点取BSD4差别,BSD4下必需隐式守候子历程完毕才气开释僵尸历程

  大概

  用两次fork(),并且使紧跟的子历程间接退出,是的孙子历程成为孤儿历程,从而init历程将卖力消灭这个孤儿历程。

  关于linux体系清算僵尸历程的操纵步调便给人人分享到这里了,若是您正在操纵linux体系的历程中也发明了僵尸历程,那么能够根据小编形貌的要领停止清算。

标签
分享到:

相干推荐-www.金沙3777.com

体系教程栏目

栏目热门教程

人气教程排行

站长推荐-金沙澳门88128cc

热门体系下载

民众号