私はubuntuマシンでGearmanをコンパイルしましたが、ローカルホストモードでは正常に動作しますが、別のマシンから接続して新しいジョブをキューに追加すると、接続エラーが発生します。
私が試してみました...
/etc/default/gearman-job-server
にある構成ファイルを編集して--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
を手動で実行して機能させることです。これで、-d
フラグがデーモンモードで起動し、SSHセッションを実行したまま閉じることができましたが、マシンを再起動すると、開始した場所に戻ることがわかりました。
Gearmanを起動時に自動的に起動するか、Sudo service
コマンドを使用して正しいIPとポートをリッスンして再起動したいのですが、デーモンを手動で起動するために問題が発生するたびにサーバーにログインする必要はありません。再び。
私はserverFaultを使用していて、最初の2つのオプションにたどり着きましたが、どちらも機能しなかったため、まだ助けが必要です。
Debianのバグレポートを掘り下げることで、これを理解することができました...
Gearmanの構成ファイルは_/etc/default/gearman-job-server
_にあり、_/etc/init/
_および_/etc/init.d/
_ディレクトリにエントリがある場合でも、多くのインストールではこれらは明らかに無視されます(_init.d
_(サービス制御用のSOMECODE)__コマンドはservice
コマンドに置き換えられましたが、基本的にはそれを行うために必要なことです。
/lib/systemd/system
_ディレクトリに移動し、選択したテキストエディタで_gearman-job-server.service
_を開きます。ExecStart
コマンドを更新します。この時点で、必要なパラメーターを手動でコーディングするか、行末に_$PARAMS
_を追加してデフォルトのparams環境変数を含めることができます。気になるパラメーターは、_--listen
_パラメーターと_--port
_パラメーターです。 listenパラメーターは、サーバーのパブリックにアクセス可能なIPである必要があります。Sudo systemctl daemon-reload
_を実行しますSudo service gearman-job-server restart
_を実行しますCentOS7でも同じ問題があります。/etc/sysconfig/geormandを編集して、以下を追加できます。
OPTIONS="--listen=127.0.0.1 --port=4730"
デフォルトのポートは4703ではなく4730であることに注意してください。次に、「Sudo service gearmand restart」を実行し、「gearadmin--status」を機能させます。