关于僵死进程

/*********************************************************************
 * Author  : Samson
 * Date    : 02/21/2012
 * Test platform:
 *               GNU Linux version 2.6.29.4

 * *******************************************************************/

[samson@UFO]$ ps aux | grep "Z"


USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

samson    5817  0.0  0.0      0     0 pts/0    Z+   23:01   0:00 [tcpserv01] <defunct>
samson    5844  0.0  0.0      0     0 pts/0    Z+   23:09   0:00 [tcpserv01] <defunct>
samson    5866  0.0  0.0      0     0 pts/0    Z+   23:11   0:00 [tcpserv01] <defunct>
samson    5869  0.0  0.0      0     0 pts/0    Z+   23:11   0:00 [tcpserv01] <defunct>
samson    5870  0.0  0.0      0     0 pts/0    Z+   23:12   0:00 [tcpserv01] <defunct>
samson    5875  0.0  0.0      0     0 pts/0    Z+   23:12   0:00 [tcpserv01] <defunct>
samson    5876  0.0  0.0      0     0 pts/0    Z+   23:12   0:00 [tcpserv01] <defunct>
samson    5877  0.0  0.0      0     0 pts/0    Z+   23:12   0:00 [tcpserv01] <defunct>
samson    5878  0.0  0.0      0     0 pts/0    Z+   23:12   0:00 [tcpserv01] <defunct>
samson    5879  0.0  0.0      0     0 pts/0    Z+   23:12   0:00 [tcpserv01] <defunct>
samson    5880  0.0  0.0      0     0 pts/0    Z+   23:12   0:00 [tcpserv01] <defunct>
samson    5967  0.0  0.0      0     0 pts/0    Z+   23:22   0:00 [tcpserv01] <defunct>

在测试一服务器程序时,当关闭多个子进程后,发现那些子进程都成为了僵死进程,僵死进程存在的目的是维护子进程的信息,以便父进程在以后某个时候获取。这些信息包括子进程的进程ID、终止状态及资源利用信息,若一个进程终止,而此进程有子进程处于僵死状态,那么它的所有僵死子进程的父进程ID将被重置为1(init进程)。继承这些子进程的init进程将清理它们。

使用命令:ps aux | grep "Z"命令得到当前的僵死进程信息,从得到的信息中可看到CPU MEM VSZ 等都为0,好像是没有占用任何的资源的,这应该只是告诉说进程的运行时空间没有占用,但这些信息是存在于内核中的一些表中的,若不对这些僵死进程进行有效处理的话,内核中的进程资源最终将耗尽。对这些僵死进程的处理我们使用wait和waitpid函数进行处理。

你可能感兴趣的:(Date,linux,rss,测试,服务器)