问题标签 [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.
php - pcntl_fork() 导致父进程失效
所以,我有这个监听 IPC 消息的 PHP 守护进程。奇怪的是,父进程(来自 pcntl_fork 的结果)留下一个 [php] < defunct> 进程,直到子进程完成,但仅当脚本从 cronjob 启动时,而不是直接从命令行启动。
我知道 <defunct> 进程并不邪恶,但我无法弄清楚为什么它只在从 cronjob 运行时发生。
命令
分叉代码:
输出
ps辅助| grep php
我发现这是一个已知的 apache 错误,但是为什么从 cronjob 运行时会出现这个错误?
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 解释器根本无法识别该功能:
如何配置此功能以正常工作?
php - pcntl 多次运行相同的代码,需要帮助
我正在使用 pcntl 来加速一个相当沉重的 CLI php 脚本,该脚本主要由一个类组成,负责在我的应用程序上发送所有自动电子邮件。
我的目标如下:我想在 foreach 循环中将每个进程分配给某个任务,我使用的实现是下面代码示例中所示的实现。
问题是,一旦你 fork 一个进程,它就会异步执行,并且还会获得父进程堆栈的副本。 在我的情况下,会发生什么是一个任务简单地执行了几次, 我的问题是如何设计这个脚本更聪明以避免这种行为?
代码:
}
在此先感谢,奥列格。
php - 为什么 pcntl_fork() 在 PHP 中被禁用?
我试图设置一个多线程套接字应用程序,但每当我运行它时,我都会收到一个错误,因为pcntl_fork()
默认情况下是禁用的。这是因为它是危险的还是不稳定的?我应该寻找其他的多线程方式,还是因为它不经常使用而被禁用?
php - PHP fork 工具产生僵尸进程
我是 PHP 分支的新手,我只是从 PHP.net 复制此代码示例。基本上我有一个工具可以监控设备并将数据保存到数据库中。该工具在后台运行。
这是我的代码:
但是当工具运行时,它会产生一个僵尸进程。我将做些什么来防止我们的服务器上出现这个僵尸或失效进程。请帮我。提前致谢
php - 与 pcntl_fork() 一起使用时,APC 能否提高 CLI 脚本的速度?
APC 通过将 PHP 文件中的操作码存储在共享内存中来工作。当 PHP 与 Web 服务器(例如 Apache)一起使用时,共享内存的寿命很长。当从命令行调用时,将为每个进程创建和销毁 APC 缓存。默认情况下,APC 在命令行上被禁用,可能是由于这个原因。
我有一个理论,如果 PHP 进程是分叉的,那么使用 APC 会有好处(pcntl_fork()
大概可以使用相同的操作码缓存。这可能只适用于分叉后包含的文件。
对此进行基准测试的最佳方法是什么?任何人都可以对此进行测试或解释该理论是否正确吗?
php - pcntl_fork() 返回,致命错误:调用未定义函数 pcntl_fork()
我正在尝试使用 pcntl_fork() 分叉一个命令行运行 XAMPP php 进程。当我运行以下命令时:
我得到:
谁能建议如何解决这个问题?
php - 如何检查 PCNTL 模块是否存在
我编写简单的需求检查脚本。它检查安装的所有必需的 PHP 模块。我需要检查是否安装了 pcntl。但是这个模块只能在 cgi 环境中访问,对于 web 查询是不可见的。extension_loaded('pcntl') 和 function_exists('pcntl_fork') 都返回 false。如何执行此检查?
php - 如何开始和结束新的 php 进程?
我正在尝试使用pcntl
extetntion在新线程中PHP
运行我的类的一些方法。CLI
我写了一个小测试方法:
这个方法被调用了 10 次。$this->process($data);
只是在控制台中打印数据。据我了解,它应该在退出后启动 10 个进程并打印我的数据。但相反,我要为每条消息等待 10 秒。我哪里错了?
php - php中的declare(ticks)和信号处理程序之间的关系是什么
我有一些这样的代码,我想了解 fork 是如何工作的,但我对 declare(ticks=1)
. 当我把它放在第一行时,子进程完成后,将调用信号处理程序,这就是我想要的;但是当我删除它时,信号处理程序将永远不会被调用!所以,我想知道滴答声是如何影响信号处理的。