Linux -- 进程管理之僵尸进程

UNIX 存在一种机制:在每个进程退出的同时,操作系统释放该进程所有资源,但仍然保留一定的信息(PID / Status / runtime),直到父进程执行 wait() / waitpid(),以便父进程得到子进程状态信息
此时这个子进程就由正常进程(Running)变成了僵尸进程(Zombie)
?
但系统中可用的进程号是有限的,大量的僵尸进程将会导致无法生成新的进程,阻碍系统正常运行
?
僵尸进程常见的处理方式有两种:

  1. 父进程wait() / waitpid() 主动结束子进程
  2. 父进程结束,此时子进程成为孤儿进程,将由 init(内核启动的第一个用户级进程,pid == 1) 接管
    (系统在每次进程结束时会扫描所有运行中的进程,查看是否有刚结束进程的子进程,如果存在则由init接管)

原文地址:https://www.cnblogs.com/chenxinshuo/p/11929113.html

时间: 2024-10-11 04:26:47

Linux -- 进程管理之僵尸进程的相关文章

一起聊聊 Linux 系统中的僵尸进程

Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.僵尸进程如何产生的?如果一个进程在其终止的时候,自己就回收所有分配给它的资源,系统就不会产生所谓的僵尸进程了.那么我们说一个进程终止之后,还保留哪些信息?为什么终止之后还需要保留这些信息呢?一个进程终止的方法很多,进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号.进程的退出状态.进程运行的

Linux进程实践(2) --僵尸进程与文件共享

孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) //生成孤儿进程 int main(int argc, char *argv[]) { pid_t pid = fork(); if (pid < 0) err_exit("fork error"); else if (pid > 0) exit(0); else { sleep(10); cout << "Chil

Linux入门之进程管理(4)之进程与文件

Linux入门之进程管理(4)之进程与文件 前面使用进程相关命令管理工具都是根据进程编号或者进程名称及其其它属性信息来查看和处理相关进程的,但是在某些情况下,想要查看某个文件或者某个设备被哪些进程所使用,使用ps.pgrep等命令查询的是不够准确的,而且有些时候并不是简单的去打开某个文本文件一样,这样还可以进行搜索过滤出来.而在linux系统中,除了常见的配置文件.日志文件等文本文件,几乎任何对象都会被内核映射去该有的文件,比如磁盘设备.挂载点等.当要知道那些用户通过哪些进程来在访问或者使用此文

UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数

lienhua342014-10-12 当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号.父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序).对于这种信号的系统默认动作是忽略它. 在文档“进程控制三部曲”中,我们讲的第三部曲是使用 wait 函数来获取终止子进程的终止状态.那么,有几个问题我们这里需要详细的学习一下. 1. 父进程一定能够获取到子进程的终止状态吗?如果子进程在父进程调用 wait 函数前就终止了,怎么办? 2. 如果父进程没有获

Linux安全攻略-僵尸进程

原文地址:http://blog.chinaunix.net/uid-29033331-id-3857755.html 微软系列的东西现在已经非常受人们的喜爱,尤其是他独特人性化操作才让大家爱不释手,但是他也以漏洞之王为称,所以政府.企业等大型服务器是绝对没人敢用windows系列产品的.相比之下Linux在安全方面就闲得非常强壮. 而且照以后的发展趋势来看Linux将在各各领域占有绝对的优势,这个年代要是不懂Linux很难立足.所以今天我就带大家步入Linux最基本的安全领域—"进程"

Linux服务器管理工具之进程管理工具top、htop、glances、dstat详解

在企业生产环境中,系统管理员通常要不定时的检查服务器上各资源的使用状况,如CPU使用率,负载,磁盘的读写速率,网络传输状况等等.因此,掌握一个进程管理工具的熟练使用,无疑对管理员的工作有事半功倍的效果.本文借助CentOS6.6向读者尽可能详细讲解top.htop.glances.以及dstat工具的使用方法和技巧.    A.top工具 top是CentOS系统自带的一款动态显示系统资源使用状况的进程管理工具,类似于windows下的任务管理器,其支持交互式命令以及定制显示内容.在命令行键入t

【归纳总结】Unix/linux下的进程管理(二):创建进程的函数及其应用、对比

创建进程的函数fork().vfork()和execl() 本次内容主要介绍Unix/linux下2个创建进程的函数fork和vfork以及它们的差别. 1.fork函数 (1)函数的格式 #include <unistd.h> pid_t fork(void); 函数功能: 主要用于以复制正在运行进程的方式来创建新的进程,其中新进程叫做子进程,正在运行的进程叫做父进程. 返回值: 函数调用成功时,父进程返回子进程的PID,子进程返回0,函数调用出错时,父进程返回-1,子进程没有被创建. 注意

Linux服务器管理: 系统的进程管理ps命令

源码包:2015-06-30 12:11:25 首先我们可以通过网络去下载相应的源码包:我们以apache为例: [[email protected] opt]# wget http://archive.apache.org/dist/httpd/httpd-2.4.9.tar.gz 解压: tar zxvf httpd-2.4.9.tar.gz 解压后我们可以进入源码目录 查看安装说明文件 more INSTALL 1.进程: 什么是进程: 进程是正在执行的一个程序或命令,每一个进程都是一个运

Linux进程管理(第二版) --进程管理命令

进程管理命令 一.查看用户信息w 1. w显示信息的含义 TTY:说明用户登录的方式,ttyN:表示以本地终端登录;pts/N表示以远程终端登录 JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里 PCPU:CPU执行程序耗费的时间 WHAT:用户正在执行的操作 load average:分别显示系统在过去1.5.15 分钟内的系统的平均负载程度[一般在0.8之下,我们认为系统负载较轻] FROM:显示用户从何处登录系统,":0"的显示代表该用户时从