在查询status命令中,
// 发信号SIGUSR2查询状态(主进程通知所有子进程) posix_kill($master_pid, SIGUSR2); usleep(500000);// 等待0.5秒
为什么要使用usleep,我试了使用pcntl_signal_dispatch(); 不好用,
求教!!!!
1、status脚本给主进程发送信号 2、主进程会将信号分发给所有子进程 3、子进程收到信号后将自己进程内的统计数据写到磁盘的一个文件里 4、status脚本读取这个文件得到所有进程的统计数据
因为2 3 信号分发接受处理些磁盘 步骤需要一点时间, 所以status脚本那里要sleep下等待这些操作完成
好的,thx
请问
posix_kill($master_pid, SIGUSR2);
后没有调用
pcntl_signal_dispatch();
还能生效,是因为
monitorWorkers()吧?
posix_kill 发送信号必须要调用 pcntl_signal_dispatch 才能执行是吗
调用pcntl_signal_dispatch能执行 另外利用declare(ticks=1);也可以
好的,那我的理解处理过程是否有问题
monitorWorkers() 里调用了 pcntl_signal_dispatch
1、status脚本给主进程发送信号
2、主进程会将信号分发给所有子进程
3、子进程收到信号后将自己进程内的统计数据写到磁盘的一个文件里
4、status脚本读取这个文件得到所有进程的统计数据
因为2 3 信号分发接受处理些磁盘 步骤需要一点时间,
所以status脚本那里要sleep下等待这些操作完成
好的,thx
请问
posix_kill($master_pid, SIGUSR2);
后没有调用
pcntl_signal_dispatch();
还能生效,是因为
monitorWorkers()吧?
posix_kill 发送信号必须要调用 pcntl_signal_dispatch 才能执行是吗
调用pcntl_signal_dispatch能执行
另外利用declare(ticks=1);也可以
好的,那我的理解处理过程是否有问题
monitorWorkers() 里调用了 pcntl_signal_dispatch