Wait和waitpid出现的原因(SIGCHLD): 当子进程退出的时候,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。 父进程查询子进程的退出状态可以用wait/waitpid函数...
分类:
其他好文 时间:
2014-11-20 17:06:02
阅读次数:
252
一般的服务器程序都是以后台进程(守护进程)的方式运行,那么要如何使得服务器进程后台化呢?下面介绍守护进程的编写遵循的步骤:1. 创建子进程,关闭父进程;2. 设置文件权限掩码。当进程创建新文件(使用open(const char *pathname, int flags, mode_t mode)系...
分类:
系统相关 时间:
2014-11-18 15:54:05
阅读次数:
208
1、概念
1.1 什么是进程?
进程是程序执行的一个实例,可以看作充分描述程序已经执行到何种程度的数据结构的汇集。
从内核观点看,进程的目的就是担当分配系统资源(CPU时间,内存等)的实体。
我们熟悉的fork()库函数,它有两种用法:
(1)、一个父进程希望复制自己,使父子进程执行不同的代码段,常用于网络服务程序。
(2)、一个进程要...
分类:
系统相关 时间:
2014-11-16 23:10:14
阅读次数:
685
概述 守护进程是在需要在后台长期运行不受控端控制的进程,通常情况下守护进程在系统启动时自动运行,在服务器关闭的时候自动关闭;守护进程的名称通常以d结尾,比如sshd、xinetd、crond、atd等。 守护进程编程规则 调用umask将文件模式创建屏蔽字设置为一个已知值(通常是0) 调用fork(),创建新进程,它会是将来的守护进程 然后使父进程...
分类:
系统相关 时间:
2014-11-16 23:08:00
阅读次数:
443
当父进程创建子进程时,子进程将继承父进程的内核对象。这时如果要控制子进程使用父进程的内核对象。可以使用SetHandleInformation设置。BOOL SetHandleInformation(HANDLE hObject, DWORD dwMask, DWORD dwFlags);改变句柄的...
分类:
其他好文 时间:
2014-11-16 11:59:22
阅读次数:
103
wait和waitpid 2012-10-26 16:41:39分类: LINUX当有多个子进程的SIGCHLD信号到达父进程的时候,如果父进程用wait等待,那么父进程在处理第一个达到的SIGCHLD信号的时候,其他的SIGCHLD信号被堵塞,而且信号不被缓存,这样就会导致信号丢失,这样会产生很多...
分类:
其他好文 时间:
2014-11-14 17:33:48
阅读次数:
223
概述 在UNIX/Linux中的fork还没实现copy on write(写时复制)技术之前。Unix设计者很关心fork之后立刻执行exec所造成的地址空间浪费,所以引入了vfork系统调用。其中,vfork子进程与父进程共享数据段,并不真正复制父进程内存,因此在vfork之后执行exec系列函数,并不会导致地址空间浪费以及无用的空间复制时间.而且,即使fork实现了copy on ...
分类:
其他好文 时间:
2014-11-13 14:39:50
阅读次数:
225
linux登陆linux,就获得一个bash,之后你的bash就是一个独立的进程,被称为pid的就是,之后你在bash下面执行的任何命令都是由这个bash所衍生的,那些被执行的命令被称为子进程。子进程只会继承父进程的环境变量,子进程不会继承父进程的自定义变量。那么你原本bash中的自定义变量在进入....
分类:
系统相关 时间:
2014-11-13 08:18:20
阅读次数:
248
最近,因和队友一起做linux开发,因为用的不是同一版本linux(他用arch, 我用ubuntu),再配置上经常就不一样,就如这个inittab文件,于是深究了一下原因:
Linux 内核启动 init ,init进程ID是1,是所有进程的父进程,所有进程由它控制。
Ubuntu 的启动由upstart控制,自9.10后不再使用/etc/event.d目录的配置文件,改为/etc/...
分类:
系统相关 时间:
2014-11-12 11:47:38
阅读次数:
217
根据Nginx(0.7.67版本)的代码,对Nginx基本的进程创建,进程主体以及事件处理进行了简要的分析。
基本上,父进程(即主进程)一开始会初始化及读取配置,并加载各模块的功能,然后fork()出N个子进程(即工作进程),具有相同的工作逻辑和功能。父进程负责监听信号(如HUP,QUIT等),通过socket pair把信号传递给子进程(子进程间一般不通信)。子进程通过事件来处理父进程...
分类:
系统相关 时间:
2014-11-08 20:55:14
阅读次数:
336