回收php-fpm在pcntl_fork后的进程
2018-02-08 12:27
417 查看
在使用了pcntl_fork后,php-fpm会产生子进程,这些进城不能够被php-fpm服务管理,不能够进行stop start等操作,并且父进程被结束后,这些子进程会成为孤立进程不被控制.
如果pcntl_fork使用多了,name会产生很多php-fpm的子进程,占用内存且不能够被回收
最终实现子进程处理完以后,将自己的进程自杀,实现php-fpm进程回收的功能
如果pcntl_fork使用多了,name会产生很多php-fpm的子进程,占用内存且不能够被回收
尝试一
修改php-fpm.conf文件的pm模式,默认为dynamic,在此修改为ondemand,并且设置pm.process_idle_timeout=60希望能够尝试解决,但是最后没有成功.pm = ondemand pm.process_idle_timeout = 60
尝试二
在子进程结束以后自己结束自己的进程pcntl_signal(SIGCHLD, SIG_IGN); $pid = pcntl_fork(); //创建子进程 if ($pid === -1) { throw new EventException('创建子进程失败'); } elseif ($pid) { pcntl_wait($status, WNOHANG); } else { try { ;//数据处理 } finally { posix_kill(posix_getpid() , SIGTERM);//自杀自己的进程 exit(0); } }
最终实现子进程处理完以后,将自己的进程自杀,实现php-fpm进程回收的功能
相关文章推荐
- PHP之pcntl_fork多进程并发编程示例
- PHP Linux Cli 模式下利用 pcntl_fork实现多进程处理
- php pcntl_fork 多进程僵尸进程的问题
- PHP使用pcntl_fork实现多进程下载图片的方法
- PHP使用pcntl_fork实现多进程下载图片的方法
- 查看php-fpm开启的进程数以及每个进程的内存限制
- 【LNMP】php-fpm的pool、php-fpm慢执行日志、php-fpm定义open_basedir和php-fpm进程管理
- nginx代理,负载均衡,ssl,php-fpm的pool,慢执行日志,open_basedir,php-fpm进程管理
- php-fpm进程数优化
- PHP多进程编之pcntl_fork
- Nginx使用的php-fpm的两种进程管理方式及优化
- php pcntl_fork和pcntl_fork 的用法
- php-fpm进程设置优化
- php-fpm进程关闭与重启脚本详解
- php-fpm进程管理方式
- 【夯实PHP基础】PHP多进程-- pcntl_fork实现
- LNMP架构——php-fpm进程管理
- linux平滑重启php-fpm进程
- ubuntu16.04安装nginx和php-fpm后进程正常启动下php文件无法访问
- PHP扩展pcntl(进程控制以及信号处理)中文文档