54、php利用信号实现父子进程间通信

2022-10-11 21:34:54 164 0
魁首哥

1、父子进程通过信号通信

1.1、流程图如下

2、案例

2.1、源码

2.2、执行结果

  • 新开 shell 终端,执行kill命令,kill -s SIGQUIT 17304

  • kill父进程 kill -s SIGQUIT 17303

3、注意事项

知识点: 信号是可以中断 wait 等系统调用的

在源码中,pcntl_signal函数的第三个参数设置为false,这个参数是代表进程在收到信号后是内核是否重启系统调用,默认是true。也就是说,当收到主进程收到信号后,pcntl_wait立即被中断并返回了-1。这里的-1是代表异常出错。而这个异常是因为主进程收到信号后,中断了wait操作。

收藏
分享
海报
0 条评论
164
上一篇:3分钟短文 | PHP 遍历数组,怎么锁定第一个和最后一个元素? 下一篇:PHP基础面试题,你会多少?

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码