Apache 2.2 编译安装的时候默认采用的是 prefork 工作模式,如果要使用其他工作模式要用 --with-mpm=worker 来指定 (1) Prefork MPM :使用多个子进程,每个子进程只有一个线程来处理一个 http 连接,效率高,但内存占用量比较大(2) Worker MP ...
分类:
Web程序 时间:
2017-06-17 10:07:41
阅读次数:
243
我们知道当一个父进程创建一个子进程时,会调用wait()和waitpid()函数清理僵?进程,?进程可以阻塞等待?进程结束,也可以?阻塞地查询是否有?进程结束等待清理(也就是轮询的?式)。采?第?种?式,?进程阻塞了就不 能处理??的?作了;采?第?种?式,?进程在处理??的?作的同时还要记得时不时 ...
分类:
系统相关 时间:
2017-06-15 21:50:12
阅读次数:
318
子进程中修改了程序的某个全局变量的值,如何在其他子进程中或者父进程中取得修改后的值,除了连数据库之外,还可以通过共享内存来获取。 举例说明: #include <sys/types.h>#include<sys/wait.h>#include<unistd.h>#include<stdio.h>#i ...
分类:
系统相关 时间:
2017-06-15 21:48:45
阅读次数:
294
#include <sys/types.h>#include<sys/wait.h>#include<unistd.h>#include<stdio.h>#include<stdlib.h> int main(){ pid_t pid; //记录fork()的返回值,用于区别父子进程 char *M ...
分类:
系统相关 时间:
2017-06-15 21:44:00
阅读次数:
218
为什么使用vfork()? 希望父子进程执行不同的代码。例如: 网络服务程序中,父进程等待客户端的服务请求,当请求达到时,父进程调用fork,使子进程处理该次请求,而父进程继续等待下一个服务请求到达。 vfork与fork的函数原型相同,用于创建新进程,而该新进程的目的是exec一个新程序(执行一个 ...
分类:
系统相关 时间:
2017-06-15 14:28:48
阅读次数:
243
先看下"_exit"和"exit": exit被调用时,将冲刷所有的标准I/O流,关闭所有打开的文件描述符。在传统实现中,同时也将关闭标准I/O流。即表示标准输出FILE对象的相关存储区将被清0。而_exit不会执行这些操作。 由于父子进程共享同一地址空间,当父进程恢复运行并调用printf时,不会 ...
分类:
系统相关 时间:
2017-06-15 14:24:11
阅读次数:
180
n返回值: fork函数调用一次,但是返回两次:在子进程中返回0,在父进程中返回子进程ID,出错返回-1。通过返回值,可以确定是在父进程还是子进程中。 n子进程和父进程继续执行fork调用之后的指令。 子进程是父进程的副本: 1.子进程获得父进程数据空间、堆和栈的副本;父子进程并不共享这些存储空间。 ...
分类:
系统相关 时间:
2017-06-15 14:20:23
阅读次数:
224
1、一个现有的进程通过调用函数fork()来创建一个新进程,这个新进程(子进程)是调用进程(父进程)的副本。 fork()函数会返回两次,在父进程中返回子进程的进程ID,在子进程中返回0。 2、在子进程中我们通过调用函数execlp()来执行输入的命令行,从而在新进程中载入新的程序。 3、在父进程中 ...
分类:
系统相关 时间:
2017-06-15 14:14:38
阅读次数:
173
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。yuminstallhttpd-y#安装httpdyuminstallpolicycoreutils-python-y#安装semanageecho“laotang”>/var/www/html/index.html#网站的默认路径是/v..
分类:
Web程序 时间:
2017-06-15 00:50:19
阅读次数:
372
Wait(NULL |&exit_status)和exit等待子进程的终止情况; 除此之外的2种特殊情况: 1.子进程终止,父进程并不正在执行wait() 2.子进程终止时,父进程已经终止了 第一种情况,要终止的进程处于一种过渡状态transition stage/state(zombie),处于z ...
分类:
系统相关 时间:
2017-06-14 18:04:39
阅读次数:
408