2011-11-21 122 views
11

我使用的Ubuntu的NATTY与PHP 5.3.8。我只是让Gearman在我的服务器上工作。在后台运行Gearman工作人员

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

但是,我想知道是否有办法在后台运行该工作人员,并对其进行监控,以便在转入多工人情况时可以跟踪多少工人我有工作。

通常,我将不得不打开两个终端,一个用于工作人员,另一个用于客户端。在执行php脚本之后,工作人员变得'卡住'了。

在此先感谢。

回答

19

好使用GearmanManager。我找到了解决我早期问题的方法。它涉及使用Supervisord将齿轮工人删除。

下面介绍如何安装Supervisord

apt-get install python-setuptools 
easy_install supervisor 
echo_supervisord_conf > /etc/supervisord.conf 

这里是如何配置它(首先从here得到一个启动脚本,并把它保存到/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工作人员现在处于活动状态,你现在可以通过命令行或浏览器运行你的gearman客户端。

我希望这会有所帮助。

+2

'apt-get install supervisor'并用'[program:gearman]'和'command ='创建'/ etc/supervisor/conf.d/gearman.conf'/usr/bin/php php_gearman_worker.php'就是我所需要的。 –

5

为背景的工人可以通过布赖恩月亮 https://github.com/brianlmoon/GearmanManager

+0

非常感谢,但我发现使用Supervisord另一种更可行的方法。 –

+0

GearMan监视器和Gearman Manager一起应该做的。 https://github.com/yugene/Gearman-Monitor – rjha94

5

另一种选择是使用screen把工人的任务变成一种超然的外壳:

screen -d -m php worker.php 
+0

非常感谢。 – pregmatch