科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件linux中的"僵尸"进程

linux中的"僵尸"进程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

僵尸"进程是一个早已死亡的进程,但在进程表(processs table)中仍占了一个位置(slot)。

作者:怪手大分 来源:CSDN 2008年3月26日

关键字: 进程 Linux 开源

  • 评论
  • 分享微博
  • 分享邮件

"僵尸"进程是一个早已死亡的进程,但在进程表(processs table)中仍占了一个位置(slot)。由于进程表的容量是有限的,所以,defunct进程不仅占用系统的内存资源,影响系统的性能,而且如果其数目太多,还会导致系统瘫痪,以下是一个无限创建子进程的程序:

#i nclude <sys/types.h>
#i nclude <unistd.h>
main()
{
       for (;;)  /*制作一个死循环*/
      
         fork(); /*开始创建一个子进程*/

}

如果执行了以上的程序就会生成无数个子进程造成系统瘫痪。如果对普通用户进行进程限制就不会造成系统资源耗尽了。

第1步:首先进到Linux终端用vi编辑/etc/security /limits.conf文件,在里面加入:

  * hard core 0
  * hard rss 5000
  * hard nproc 20
 
  这里的* 代表除了Root的所有用户,(* hard core 0) 是禁止core files"core 0",(* hard rss 5000) 是限制内存使用为5MB"rss  5000", (* hard nproc 20 )是限制进程数为"nproc 50"。大家可以根据自己系统内存大小进行合理配置。

第2步:用vi编辑/etc/pam.d/login文件,然后加上下面这行保存退出就可以。

  session required /lib/security/pam_limits.so

    好了,现在我们已经对普通用户限制了进程和内存使用极限,修改完配置以后大家可以用Root和普通用户分别进行测试,结果当然是普通用户执行完我们刚才做的程序不会死机了。

用ps -ef|grep def命令可以查看系统中是否存在僵尸进程,如果存在就杀死,释放系统资源。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章