daemon
单实例
pid file
共享内存 apache scoreboard
accept 锁,进程间锁 apr_proc_mutex_create()-->proc_mutex_posix_create()
dopen()
ap_scoreboard_shm----->这是真正共享内存
ap_scoreboard_image---->指向共享内存
ap_reopen_scoreboard() 把共享内存挂到子进程自己的内存空间中(其实就是重新打开一下共享内存)
进程间通信:锁,管道
信号
killpg() send signal to a process group
prefork MPM中存在多个子进程侦听指定的套接字,因此,如果不不对此加以控制,则可能会出现几个子进程同时对一个连接进行处理的情况,这是不允许的。因此apache引入了Accept Mutex确保在任何时候一个客户端连接请求只能由一个子进程接受。
unixd_setup_child()--->geteuid(), setuid() //切换到普通用户
ap_wait_or_timeout() //父进程等待子进程结束
具体实现可参考apr库的实现
浙公网安备 33010602011771号