Maison > développement back-end > tutoriel php > php-fpm和pcntl_fork共用问题

php-fpm和pcntl_fork共用问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-06-06 20:51:02
original
1388 Les gens l'ont consulté

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

<?php for ($i = 0;$i < 2;$i++) {
    pcntl_fork();
    print_r('-');
}
Copier après la connexion
Copier après la connexion

在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('-');
}
Copier après la connexion
Copier après la connexion

在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程序

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal