给进程设置僵尸状态的目的是维护子进程的信息,以便父进程在以后某个时间获取。这些信息包括子进程的进程ID、终止状态以及资源利用信息(CPU时间,内存使用量等等)。如果一个进程终止,而该进程有子进程处于僵尸状态,那么它的所有僵尸子进程的父进程ID将被重置为1(init进程)。继承这些子进程的init进程将清理它们(init进程将wait它们,从而去除僵尸状态)。
但通常情况下,我们是...
分类:
系统相关 时间:
2014-06-20 11:29:25
阅读次数:
336
keepalived+nginx双机热备+负载均衡
最近因业务扩展,需要将当前的apache 转为nginx(web), 再在web前端放置nginx(负载均衡)。同时结合keepalived 对前端nginx实现HA。
nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发...
分类:
其他好文 时间:
2014-06-19 10:29:19
阅读次数:
307
fork函数的原型是这样的: 1 pid_t fork(void); 它实际上是一个系统调用,被包装在unistd.h中 由fork创建的新进程称为子进程,创建子进程的进程叫做父进程.子进程拥有与父进程一模一样的数据,从fork()语句开始分化. 它的返回值类型pid_t是一个内容为int的宏,在s...
分类:
其他好文 时间:
2014-06-18 19:23:17
阅读次数:
282
简介
multiprocessing模块使用和threading包类似的API接口来产生多进程,multiprocessing包提供本地和远程的并发,通过使用subprocesses(子进程)代替threads(线程)有效的避开了GIL(Global Interpreter Lock)。由于这一点,multiprocessing模块允许程序充分的利用多处理器。可以跨平台使用,包括Unix和Win...
分类:
编程语言 时间:
2014-06-15 09:22:20
阅读次数:
375
1无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。2.高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。3有名管道 (nam...
分类:
其他好文 时间:
2014-06-14 18:18:58
阅读次数:
142
共享内存区是可用IPC形式中最快的。一旦内存区映射到共享它的进程的地址空间,进程间数据的传递就不再涉及内核。然而往该共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步。不再涉及内核是指:进程不再通过执行任何进入内核的系统调用来彼此传递数据。内核必须建立允许各个进程共享该内存区的内存映射关系,然后一直管理内存区。
默认情况下通过fork派生的子进程并不与其父进程共享内存区。
mmap...
分类:
系统相关 时间:
2014-06-11 06:34:25
阅读次数:
439
#include #include /*功能:复制进程參数:无返回值: 成功: 父进程:返回子进程id
子进程:返回0 失败: 返回-1*/pid_t fork(void); 由fork创建的新进程被称为子进程(child process)。该函数...
分类:
系统相关 时间:
2014-06-09 22:20:29
阅读次数:
417
signal(SIGCHLD, SignalHandler);
注册软中断,对应的apiclose(socket);ret=fork(): 父进程,返回子进程的pid. 子进程返回0,
出错返回<0set_process_name("Name"), 当前进程名称dpopen, dlclose,dls...
分类:
系统相关 时间:
2014-06-09 18:24:11
阅读次数:
306
wait()和waitpid()
函数说明
wait()函数用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或者该进程接收到了一个指定的信号为止。如果该父进程没有子进程或者它的子进程已经结束,则wait()函数就会立即返回。
waitpid()的作用和wait()一样,但它并不一定要等待第一个终止的子进程(它可以指定需要等待终止的子进程),它还有若干选项,如可...
分类:
系统相关 时间:
2014-06-08 15:45:41
阅读次数:
350
管道大致分为两种:
1.匿名管道:这个一般只能用于父进程创建管道传递给子进程,可以父子进程通信
2.有名管道:这种管道存在于文件系统中,所以任意进程都能找到,都可以通过它来通信
API:
#include
int pipe(int fds[2])
fds[0] 是读取文件描述符,也就是管道出口
fds[1] 是写文件描述符,也就是管道入口
创建一个匿名管道
成功返回0,...
分类:
其他好文 时间:
2014-06-04 13:41:39
阅读次数:
365