Gearman não escuta no IP direito para o Ubuntu

1

Eu compilei o Gearman na minha máquina Ubuntu e ele funciona bem no modo localhost, mas recebo um erro de conexão ao conectar de outra máquina para adicionar um novo trabalho à fila.

Eu tentei ...

  1. Editando o arquivo de configuração localizado em /etc/default/gearman-job-server para adicionar --listen={ip-here} e que não fez nada.
  2. Editando o script upstart diretamente para adicionar o sinalizador --listen e isso não fez nada.
  3. Editando o arquivo /etc/init.d/gearman-job-server para adicionar os parâmetros --listen e --port ao script de início.
  4. Editando manualmente o arquivo upstart em /etc/init/gearman-job-server.conf e comentando a linha exec existente e adicionando as seguintes linhas após o comando respawn ...

script

exec gearmand --listen={ip} --port=4703

end script

A única maneira que eu tenho Gearman trabalhando no momento é manualmente executando o comando gearmand -d -listen={ip} --port=4703 que fez o trabalho. Agora eu entendo que o sinal -d lança no modo daemon que me permitiu fechar a sessão SSH enquanto ainda a mantém em execução, mas qualquer reinicialização da máquina vai me colocar de volta onde eu comecei.

Eu quero que o Gearman inicie automaticamente na inicialização ou reinicie o comando sudo service , escutando o IP e a porta corretos e não quero ter que fazer o login no servidor toda vez que algo der errado para iniciar manualmente o daemon novamente.

Já passei pelo serverFault, o que me levou às duas primeiras opções, mas ainda precisando de ajuda, já que nenhuma delas funcionou.

    
por Chris Rutherfurd 12.04.2017 / 17:22

2 respostas

1

Gerenciado para descobrir isso cavando direto nos relatórios de bugs do Debian ...

Mesmo que o Gearman tenha o arquivo de configuração localizado em /etc/default/gearman-job-server e mesmo possuindo entradas nos diretórios /etc/init/ e /etc/init.d/ , eles aparentemente são ignorados em muitas instalações (Possível a partir do ponto em que o comando init.d o controle de serviço foi superado pelo comando service , mas basicamente o que você precisa fazer ...

  1. Navegue até o diretório /lib/systemd/system e abra gearman-job-server.service no editor de texto escolhido.
  2. Atualize o comando ExecStart . Nesse momento, você pode codificar manualmente nos parâmetros desejados ou incluir a variável de ambiente params padrão, adicionando $PARAMS ao final da linha. Os parâmetros com os quais você se importa são os parâmetros --listen e --port . O parâmetro de escuta deve ser o IP publicamente acessível do seu servidor.
  3. Executar sudo systemctl daemon-reload
  4. Executar sudo service gearman-job-server restart
  5. Faça um teste e ele deve estar funcionando agora
por 13.04.2017 / 01:43
0

No CentOS 7, há o mesmo problema. Você pode editar o / etc / sysconfig / gearmand e adicionar o seguinte:

OPTIONS="--listen=127.0.0.1 --port=4730"

Note que a porta padrão é 4730, não 4703. Em seguida, execute "sudo service gearmand restart" - e obtenha "gearadmin --status" funcionando!

    
por 15.06.2017 / 23:28