Я скомпилировал Gearman на своем компьютере с Ubuntu, и он отлично работает в режиме localhost, но при подключении с другого компьютера я получаю сообщение об ошибке подключения, чтобы добавить новое задание в очередь.
Я пытался...
/etc/default/gearman-job-server
добавить --listen={ip-here}
и это ничего не дало.--listen
flag, и это тоже ничего не дало./etc/init.d/gearman-job-server
файл, чтобы добавить --listen
и --port
paramaters в стартовый скрипт./etc/init/gearman-job-server.conf
и комментируя существующую строку exec и добавляя следующие строки после respawn
команда ...script
exec gearmand --listen={ip} --port=4703
end script
Единственный способ, которым у меня работает Gearman на данный момент, - это вручную запустить команду gearmand -d -listen={ip} --port=4703
что заставило его работать. Теперь я понимаю, что -d
flag запускает его в режиме демона, который позволил мне закрыть сеанс SSH, продолжая при этом его работать, но любая перезагрузка компьютера вернет меня туда, откуда я начал.
Я хочу, чтобы Gearman автоматически запускался при загрузке или перезапускался через sudo service
команда прослушивает правильный IP-адрес и порт, и я не хочу, чтобы мне приходилось входить на сервер каждый раз, когда что-то пойдет не так, чтобы снова запустить демон вручную.
Я прошел через serverFault, который привел меня к первым двум вариантам, но мне все еще нужна помощь, поскольку ни один из них не работал.
Удалось понять это, копаясь прямо в отчетах об ошибках Debian ...
Несмотря на то, что Gearman имеет файл конфигурации, расположенный в /etc/default/gearman-job-server
и даже если у него есть записи в /etc/init/
и /etc/init.d/
каталоги, по-видимому, игнорируются во многих установках (возможно, поскольку init.d
команда для управления службой была заменена service
команда, но в основном то, что вам нужно для этого ...
/lib/systemd/system
каталог и откройте gearman-job-server.service
в выбранном вами текстовом редакторе.ExecStart
команда. На этом этапе вы можете либо вручную указать нужные параметры, либо включить переменную среды params по умолчанию, добавив $PARAMS
до конца строки. Вам важны параметры --listen
и --port
параметры. Параметр прослушивания должен быть общедоступным 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»!