php 进程管理,php如何管理进程

45598e4608ed3902d3e97f293b1b1e77.png

进程管理-防止进程成为僵尸进程

创建好了进程,那么怎么对子进程进行管理呢?

使用信号,对子进程的管理,一般有两种情况:(推荐学习:PHP编程从入门到精通)

posix_kill():此函数并不能顾名思义,它通过向子进程发送一个信号来操作子进程,在需要要时可以选择给子进程发送进程终止信号来终止子进程;

pcntl_waitpid():等待或返回fork的子进程状态,如果指定的子进程在此函数调用时已经退出(俗称僵尸进程),此函数将立刻返回,并释放子进程的所有系统资源,此进程可以避免子进程变成僵尸进程,造成系统资源浪费;

孤儿进程:父进程挂了,子进程被pid=1的init进程接管(wait/waitpid),直到子进程自身生命周期结束被系统回收资源和父进程 采取相关的回收操作

僵尸进程:子进程exit退出,父进程没有通过wait/waitpid获取子进程状态,子进程占用的进程号等描述资源符还存在,产生危害:例如进程号是有限的,无法释放进程号导致未来可能无进程号可用

**父进程中使用:pcntl_wait或者pcntl_waitpid的目的就是防止worker成为僵尸进程

作用:使用pcntl_wait()后,在子进程死掉后,父进程也会被停止**

最后我们通过下图来简单的总结和描述这个多进程实现的过程:

a34c883897ee2a99833e0ad1e26c1fd4.png

进程管理-进程间通信

队列:如Redis,推荐

socket:推荐

管道:实现复杂,且管道(pipe),使用文件形式存在,存在硬盘IO性能瓶颈

信号:承载信息量少,不好管理

进程管理-切换为守护进程

使用&实现

php deadloop.php &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值