为 pear 的“system_daemon”编写的脚本拒绝分叉以形成新进程。这在我的旧服务器上运行良好,但我的新服务器没有它。守护程序脚本在 shell 中运行得很好,并且会一直运行到我杀死它们为止。作为临时解决方法,我让守护进程在分离的 tmux shell 中运行,但这显然不是一个长期解决方案。
是否有任何已知问题阻止它分叉?
我有 PHP 5
PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli) (built: Jun 13 2012 17:19:58)
和此处列出的 pcntl 加载了 ini
/etc/php5/cli/conf.d/pcntl.ini,
在 php -i 输出中进一步向下
pcntl
pcntl support => enabled
和梨
PEAR Version: 1.9.4
和 Pear 的 system_daemon
pear/System_Daemon 1.0.0 1.0.0 Turn PHP scripts into Linux daemons
任何想法这里出了什么问题?
不幸的是,我无法发布源代码,但我可以说所有(包括文档中的示例)system_daemon 脚本都拒绝分叉。
编辑——附加细节
根据 cweiske 的建议,我尝试了 pcntl 示例,它工作正常
我还尝试卸载 system_daemon,使用 aptitude 清除我的 pear 安装,重新启动,重新安装 pear,然后重新安装 system_daemon。这也没有效果。
我可以在其他 Ubuntu 机器 11.04+ 上复制这个问题