问题标签 [pcntl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6285 浏览

php - pcntl_fork() 导致父进程失效

所以,我有这个监听 IPC 消息的 PHP 守护进程。奇怪的是,父进程(来自 pcntl_fork 的结果)留下一个 [php] < defunct> 进程,直到子进程完成,但仅当脚本从 cronjob 启动时,而不是直接从命令行启动。

我知道 <defunct> 进程并不邪恶,但我无法弄清楚为什么它只在从 cronjob 运行时发生。

命令

分叉代码:

输出

ps辅助| grep php

我发现这是一个已知的 apache 错误,但是为什么从 cronjob 运行时会出现这个错误?

0 投票
2 回答
21789 浏览

php - 出于安全原因,pcntl 无法在 Ubuntu 上运行

我已经使用这篇文章在运行 Ubuntu 32 位 12.10 的 PHP 5.4.6 上安装了 pcntl 。

它根本不顺利,因为编译后,运行时make test出现以下错误。每次我试图分叉一个子进程时,我都会收到一条警告,上面写着:

警告:出于安全原因,pcntl_fork() 在第 8 行的 /var/www/mydev/dev/mailServiceTest.php 中被禁用

我在网上搜索了一个解决方案,但不幸的是,我在其他任何地方都没有找到任何提到这个问题的地方。

键入以下命令时,似乎确实已经安装了 PHP,尽管在我安装此扩展之前 PHP 解释器根本无法识别该功能:

如何配置此功能以正常工作?

0 投票
1 回答
1305 浏览

php - pcntl 多次运行相同的代码,需要帮助

我正在使用 pcntl 来加速一个相当沉重的 CLI php 脚本,该脚本主要由一个类组成,负责在我的应用程序上发送所有自动电子邮件。

我的目标如下:我想在 foreach 循环中将每个进程分配给某个任务,我使用的实现是下面代码示例中所示的实现。

问题是,一旦你 fork 一个进程,它就会异步执行,并且还会获得父进程堆栈的副本。 在我的情况下,会发生什么是一个任务简单地执行了几次, 我的问题是如何设计这个脚本更聪明以避免这种行为?

代码:

}

在此先感谢,奥列格。

0 投票
2 回答
1742 浏览

php - 为什么 pcntl_fork() 在 PHP 中被禁用?

我试图设置一个多线程套接字应用程序,但每当我运行它时,我都会收到一个错误,因为pcntl_fork()默认情况下是禁用的。这是因为它是危险的还是不稳定的?我应该寻找其他的多线程方式,还是因为它不经常使用而被禁用?

0 投票
1 回答
1639 浏览

php - PHP fork 工具产生僵尸进程

我是 PHP 分支的新手,我只是从 PHP.net 复制此代码示例。基本上我有一个工具可以监控设备并将数据保存到数据库中。该工具在后台运行。

这是我的代码:

但是当工具运行时,它会产生一个僵尸进程。我将做些什么来防止我们的服务器上出现这个僵尸或失效进程。请帮我。提前致谢

0 投票
1 回答
862 浏览

php - 与 pcntl_fork() 一起使用时,APC 能否提高 CLI 脚本的速度?

APC 通过将 PHP 文件中的操作码存储在共享内存中来工作。当 PHP 与 Web 服务器(例如 Apache)一起使用时,共享内存的寿命很长。当从命令行调用时,将为每个进程创建和销毁 APC 缓存。默认情况下,APC 在命令行上被禁用,可能是由于这个原因。

我有一个理论,如果 PHP 进程是分叉的,那么使用 APC 会有好处(pcntl_fork()大概可以使用相同的操作码缓存。这可能只适用于分叉后包含的文件。

对此进行基准测试的最佳方法是什么?任何人都可以对此进行测试或解释该理论是否正确吗?

0 投票
4 回答
31460 浏览

php - pcntl_fork() 返回,致命错误:调用未定义函数 pcntl_fork()

我正在尝试使用 pcntl_fork() 分叉一个命令行运行 XAMPP php 进程。当我运行以下命令时:

我得到:

谁能建议如何解决这个问题?

0 投票
4 回答
7397 浏览

php - 如何检查 PCNTL 模块是否存在

我编写简单的需求检查脚本。它检查安装的所有必需的 PHP 模块。我需要检查是否安装了 pcntl。但是这个模块只能在 cgi 环境中访问,对于 web 查询是不可见的。extension_loaded('pcntl') 和 function_exists('pcntl_fork') 都返回 false。如何执行此检查?

0 投票
1 回答
229 浏览

php - 如何开始和结束新的 php 进程?

我正在尝试使用pcntlextetntion在新线程中PHP运行我的类的一些方法。CLI我写了一个小测试方法:

这个方法被调用了 10 次。$this->process($data);只是在控制台中打印数据。据我了解,它应该在退出后启动 10 个进程并打印我的数据。但相反,我要为每条消息等待 10 秒。我哪里错了?

0 投票
1 回答
1913 浏览

php - php中的declare(ticks)和信号处理程序之间的关系是什么

我有一些这样的代码,我想了解 fork 是如何工作的,但我对 declare(ticks=1). 当我把它放在第一行时,子进程完成后,将调用信号处理程序,这就是我想要的;但是当我删除它时,信号处理程序将永远不会被调用!所以,我想知道滴答声是如何影响信号处理的。