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
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~