让服务器在启动阶段调用fork创建一个子进程池,通过子进程来处理客户端请求。子进程与父进程之间使用socketpair进行通信(为了方便使用sendmsg与recvmsg,如果使用匿名管道,则无法使用以上两个函数)。以下针对TCP进行分析。server端使用select轮询用于监听客户端请求的被动套...
分类:
其他好文 时间:
2014-09-11 16:57:12
阅读次数:
186
wait函数 当进程正常或异常终止时,内核就向其父进程发送SICHLD信号。父进程可以选择忽略该信号(系统默认该动作),或者提供一个该信号发生时即被调用执行的信号处理程序。 调用wait或waitpid的进程时: ·如果其素有子进程都还在运行,则阻塞。 ·如果一个子进程已终止,正等待父进程获...
分类:
其他好文 时间:
2014-09-11 15:03:42
阅读次数:
225
引言 让服务器在启动阶段调用fork创建一个子进程池,通过子进程来处理客户端请求。子进程与父进程之间使用socketpair进行通信(为了方便使用sendmsg与recvmsg,如果使用匿名管道,则无法使用以上两个函数)。以下针对TCP进行分析。 server端使用select轮询用于监听客户端请求...
分类:
系统相关 时间:
2014-09-11 13:46:01
阅读次数:
334
ctrl + c --> 2)SIGINTctrl + \ --> 3)SIGQUIT13)SIGPIPE 当管道读端关闭,再往管道写东西,会发出SIGPIPE信号17)SIGCHLD 子进程退出会向父进程发出SIGCHLD信号,系统默认处理是忽略掉该信号#include#include #incl...
分类:
其他好文 时间:
2014-09-09 12:28:48
阅读次数:
185
大体步骤如下
1. 调用fork()函数创建子进程后,让父进程立即exit(),这样产生的子进程变成孤儿进程,由init进程接管。
2. 调用setsid()函数,使得新创建的进程脱离控制终端,同时创建新的进程组,并成为该进程组的首进程。在linux系统中,所有的进程都属于各自的进程组,进程组是一个或多个进程的集合,一个进程组中至少有一个进程成员,否则就消亡了。每个进程组都有一个进...
分类:
其他好文 时间:
2014-09-04 10:34:39
阅读次数:
1161
进程读文件之前,需要先打开文件,进程打开文件的时候,Linux会把这个文件关联到一个数字(称之为文件描述符),文件描述符是打开的文件在进程表中的一个索引。每个进程都有自己的一组已经打开的文件和各自的文件描述符,一旦打开某个文件,进程就可以通过文件描述符进行读写该文件。当进程不在需要文件的时候,它必须关闭文件,并且释放文件描述符。
Linux进程在启动的时候会打开3个文件:标准输入(文件描述符0),标准输出(文件描述符1),标准错误(文件描述符2)。
子进程会继承父进程的文件描述符,可以使用命令
ls /p...
分类:
其他好文 时间:
2014-09-03 22:44:37
阅读次数:
241
僵尸进程(zombie process):在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中运行的所有进程,...
分类:
其他好文 时间:
2014-08-31 17:09:41
阅读次数:
205
CLOEXEC 就是新的内核里的这个选项是把fcntl的这个设置放在open里原子操作,以免在多线程程序里有可能会出现fcntl在设置的同时其它线程在 fork+execve,虽然在线程里fork比较罕见.这个选项的意思就是子进程默认是继承父进程打开的所有fd,如果句柄加入了这个设置,在 execv...
分类:
其他好文 时间:
2014-08-30 21:42:10
阅读次数:
426
19:22:012014-08-27引言:以前对wait waitpid 以及exit这几个函数只是大致上了解,但是看REDIS的AOF和RDB 2种持久化时 均要处理子进程运行完成退出和父进程需要做的什么事情,所以特定看了UNIX环境编程和LINUX系统编程这2本书 重新梳理下整个要点。内容:一般...
分类:
系统相关 时间:
2014-08-27 23:23:18
阅读次数:
338
linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放...
分类:
系统相关 时间:
2014-08-26 16:52:56
阅读次数:
283