php-fpm,以及现在比较火的workman,swoole,其都是使用的多进程的管理模式,使用manger进程,管理其子进程,今天通过纯php做了一个类似的小东西,这样以后再做守护脚本的时候,可以使用这种方式,好处就是,多进程,更能利用多核的优势,并且可以做平滑重启。

本代码实现的功能,可以自定义子进程数,比如你定3个子进程,运行会产生1个manger进程,3个work进程,通过linux信号,来实现,进程的平滑重启。

php index.php命令行运行,会产生3个子进程,

你随意kill一个,管理进城会立即补充一个,传递SIGUSR1给子进程,会平滑重启比子进程,给主进城,就会平滑重启所有子进程,kill主进城,或者传递SIGHUP信号,会平滑的kill所有子进程,结束主进城。这样的好处就是主进城只负责监控子进程和自己的状态,运行更稳定,然后后期可以做一些子进程任务处理上限的控制,就可以试进城更稳定高效,信号试用kill -s 传递

 

升级版:

留作记录