我已经在我的ubuntu机器上编译了Gearman,并且在localhost模式下工作正常,但是当从另一台机器连接到队列中添加一个新的作业时,出现连接错误。
我努力了…
/etc/default/gearman-job-server的configuration文件来添加--listen={ip-here} ,但是什么也没做。 --listen标志,而且什么都不做。 /etc/init.d/gearman-job-server文件以将--listen和--port参数添加到启动脚本。 /etc/init/gearman-job-server.conf的upstart文件,并注释掉现有的exec行,并在respawn命令之后的以下行中添加… script
exec gearmand --listen={ip} --port=4703
end script
我现在有Gearman工作的唯一方法是通过手动运行命令gearmand -d -listen={ip} --port=4703命令gearmand -d -listen={ip} --port=4703 ,使其工作。 现在我明白了-d标志以守护进程模式启动它,它允许我closuresSSH会话,同时仍然保持运行,但任何机器重新启动都会让我马上回到开始的地方。
我希望Gearman在启动时自动启动,或者通过sudo service命令重新启动,以侦听正确的IP和端口,而且我不希望每次出现问题时都要login到服务器,以便再次手动启动守护进程。
我已经通过serverFault,这导致我前两个选项,但仍然需要帮助,因为这些都没有工作。
通过深入挖掘Debian的bug报告来pipe理这个问题。
尽pipeGearman的configuration文件位于/etc/default/gearman-job-server ,即使在/etc/init/和/etc/init.d/目录中有这些条目,这些目录在很多安装中显然被忽略(可能从服务控制的init.d命令被service命令取代,但基本上你需要做的是…
/lib/systemd/system目录,并在您select的文本编辑器中打开gearman-job-server.service 。 ExecStart命令。 在这一点上,你可以手动编码你想要的参数,或者你可以通过在行尾添加$PARAMS来包含默认的params环境variables。 你关心的参数是--listen和--port参数。 listen参数应该是服务器的公共可访问IP。 sudo systemctl daemon-reload sudo service gearman-job-server restart 在CentOS 7中也有同样的问题。 您可以编辑/ etc / sysconfig / gearmand并添加以下内容:
OPTIONS="--listen=127.0.0.1 --port=4730"
请注意,默认的端口是4730,而不是4703.然后,运行“sudo service gearmand restart” – 并获得“gearadmin –status”的工作!