相对厚重点,用MPM封装了进程模型,多种策略可以选择
MPM的数据结构
记分板
共享内存,存放子进程的状态信息,主要用于父进程对子进程进行控制。每次执行任务后,子进程都会检查是否跟正在运行的主进程是同一个家族,否则就优雅退出。(running_generation 家族号)
描述线程(子进程中)信息:状态,访问,运行
线程连接信息
想知道系统的状态情况,遍历记分板即可
进程模型
Leader/Follow
侦听者(Leader、工作者、空闲者
Worker
混合进程和线程:子进程下多个线程
每个进程都有一侦听线程。对Accept_mutex进行互斥?
(太多进程的启动,增加一下sleep间隙)
多线程 + 完成端口信号模型
侦听线程用户侦听,不负责连接处理,工作线程只负责连接请求;角色可以互换
ap_mpm_pod_check
信号处理
退出
SIGTERM
SIGWINCH
SIGINT
非优雅重启
SIGHUP
优雅启动
SIGUSR
忽略
SIGPIPE