Home > Backend Development > PHP Tutorial > php-fpm和pcntl_fork共用问题

php-fpm和pcntl_fork共用问题

WBOY
Release: 2016-06-06 20:51:02
Original
1316 people have browsed it

php-fpm连接模式下使用pcntl_fork创建子进程,一段最简单的代码如:

<?php for ($i = 0;$i < 2;$i++) {
    pcntl_fork();
    print_r('-');
}
Copy after login
Copy after login

在cli模式下输出6个‘-’,但是在php-fpm连接模式下只会输出2个‘-’,即php-fpm连接时只能输出主进程或某个子进程的结果。如何能在php-fpm下获得所有输出,或者php-fpm下php的输出结果是输出到哪里?有没人遇到过这问题?

回复内容:

php-fpm连接模式下使用pcntl_fork创建子进程,一段最简单的代码如:

<?php for ($i = 0;$i < 2;$i++) {
    pcntl_fork();
    print_r('-');
}
Copy after login
Copy after login

在cli模式下输出6个‘-’,但是在php-fpm连接模式下只会输出2个‘-’,即php-fpm连接时只能输出主进程或某个子进程的结果。如何能在php-fpm下获得所有输出,或者php-fpm下php的输出结果是输出到哪里?有没人遇到过这问题?

没遇到过。我ubuntu下用apt-get安装的php-fpm默认是禁用pcntl模块的,也把这些函数都写到了disabled_functions里面了。

php-fpm自己有一个管理进程,本来就不应该使用这个函数,否则行为会不确定,比如说管理进程可能会杀掉过多的进程。

pcntl_fork是只能在cli下的,php-fpm不支持,要想做到,可以在php-fpm下调system方法或popen方法去执行一个cli程序

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template