Php 在后台运行Gearman工人

Php 在后台运行Gearman工人,php,gearman,Php,Gearman,我正在使用Ubuntu Natty和PHP5.3.8。我刚让Gearman在我的服务器上工作 我用PHP手册中的一些脚本做了一些测试,一切正常 但是,我想知道是否有一种方法可以在后台运行worker,并对其进行监控,这样当我转到多个worker的情况时,我可以跟踪我有多少个worker在工作 通常,我必须打开两个终端,一个用于工人,一个用于客户。在执行php脚本后,工作程序的一个脚本将“卡住”生效 提前感谢。对于后台工作人员,您可以使用Brian Moon的Gearman Manager 好的。

我正在使用Ubuntu Natty和PHP5.3.8。我刚让Gearman在我的服务器上工作

我用PHP手册中的一些脚本做了一些测试,一切正常

但是,我想知道是否有一种方法可以在后台运行worker,并对其进行监控,这样当我转到多个worker的情况时,我可以跟踪我有多少个worker在工作

通常,我必须打开两个终端,一个用于工人,一个用于客户。在执行php脚本后,工作程序的一个脚本将“卡住”生效


提前感谢。

对于后台工作人员,您可以使用Brian Moon的Gearman Manager
好的。我找到了解决我先前问题的办法。它涉及到使用Supervisord对齿轮工进行非监控

下面介绍如何安装Supervisord

apt-get install python-setuptools
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
以下是如何配置它(首先从获取初始化脚本并将其保存到
/etc/init.d/supervisord
),然后执行以下操作:

chmod +x /etc/init.d/supervisord
update-rc.d -f supervisord defaults
然后,您需要更新supervisor.conf文件,以告知supervisord您希望作为守护进程运行的命令(当然,这将是您的gearman worker)。下面是您将添加到supervisord.conf文件的示例,您需要根据自己的具体情况对其进行更新

[program:gearman]
command=/usr/bin/php php_gearman_worker.php
numprocs=1
directory=/root/gearman
stdout_logfile=/root/gearman/supervisord.log
environment=GEARMAN_USER=gearman
autostart=true
autorestart=true
user=gearman
stopsignal=KILL
完成后,启动supervisord,即
/etc/init.d/supervisord start

完成此操作后,Gearman worker现在处于活动状态,您现在可以通过命令行或浏览器运行Gearman客户端

我希望这会有所帮助。

另一个选项是将辅助任务放入分离的shell中:

screen -d -m php worker.php

非常感谢,但我找到了另一种更可行的方法,使用Supervisord。GearMan monitor和GearMan Manager一起应该可以做到这一点
apt-get-install-supervisor
并创建
/etc/supervisor/conf.d/gearman.conf
,只需
[program:gearman]
命令=/usr/bin/php-php-php\u-gearman\u-worker.php