linux中的。"僵尸"进程

原创 2006年05月22日 16:57:00

"僵尸"进程是一个早已死亡的进程,但在进程表(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命令可以查看系统中是否存在僵尸进程,如果存在就杀死,释放系统资源。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

linux中的僵尸进程

Linux避免僵尸进程

  • 2013-04-28 13:49
  • 177KB
  • 下载

Linux 的僵尸(zombie)进程

可能很少有人意识到,在一个进程调用了exit之后,该进程 并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎...

Linux 僵尸进程产生及如何避免

在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结 束,又没有显式忽略该信号,则子进程成...

Linux 系统中僵尸进程

Linux 系统中僵尸进程 Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动。僵尸进程指的是那些虽然已经终止的进程,但仍然保留...

linux僵尸进程

定义僵死进程是指子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程。 实例#include #includ...

linux中的僵尸进程

如果一个进程已经退出或者被杀死,但是它的父进程尚未执行wait操作,那么该进程进入僵尸(zombie)状态。这种进程不再参与调度,它的内存也会被释放,但系统不会把它从进程表中删除(top 命令中显示状...

Linux安全攻略—僵尸进程

Linux安全攻略—僵尸进程 [ tempzjm 发表于 2005-10-23 16:14:00 ]  Linux安全攻略—僵尸进程  -----------------------------...

Linux的僵尸进程

在Unix系统管理中,当用ps命令观察进程的执行状态时,经常看到某些进程的状态栏为defunct,这就是所谓的“僵尸”进程。“僵尸”进程是一个早已死亡的进程,但在进程表(processs table)...

linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸

一、程序存储       经常被问到进程与线程的区别,今天有人问程序与进程的区别,一下子还真没反应过来   。程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)