Obi*_*ill 19
好.我找到了解决我早期问题的方法.它涉及使用Supervisord对齿轮工人进行deamonize.
以下是安装Supervisord的方法
apt-get install python-setuptools
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
Run Code Online (Sandbox Code Playgroud)
以下是如何配置它(首先从此处获取init脚本并将其保存到/etc/init.d/supervisord),然后执行以下操作:
chmod +x /etc/init.d/supervisord
update-rc.d -f supervisord defaults
Run Code Online (Sandbox Code Playgroud)
然后,您需要更新您的supervisor.conf文件,告诉supervisord您想要作为守护程序运行哪个命令(当然,这将是您的齿轮工作者).下面只是您要添加到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
Run Code Online (Sandbox Code Playgroud)
当你完成后,然后启动supervisord即/etc/init.d/supervisord start.
完成此操作后,您的Gearman工作人员现在处于活动状态,您现在可以通过命令行或浏览器运行您的gearman客户端.
我希望这有帮助.
另一种选择是使用screen将worker任务放入一个独立的shell:
screen -d -m php worker.php
Run Code Online (Sandbox Code Playgroud)