capistrano inicia o redis-server com sucesso, mas não está funcionando quando eu faço login
-
13-12-2019 - |
Pergunta
Eu tenho um script capistrano que pode controlar meu servidor redis.Aqui está a tarefa em questão:
%w[start stop restart].each do |cmd|
desc "#{cmd}s redis-server"
task cmd, :roles => :app do
run "#{sudo} /etc/init.d/redis-server #{cmd}"
end
end
When I run this (deploying to a local vagrant VM) it says it's starts successfully:
> cap local redis:start
triggering load callbacks
* executing `local'
Deploying branch master
triggering start callbacks for `redis:start'
* executing `multistage:ensure'
* executing `redis:start'
* executing "sudo -p 'sudo password: ' /etc/init.d/redis-server start"
servers: ["192.168.33.10"]
Password:
[192.168.33.10] executing command
** [out :: 192.168.33.10] Starting redis-server:
** [out :: 192.168.33.10] redis-server.
command finished in 2054ms
No entanto, o redis-server não está em execução quando eu faço o ssh.Funciona se eu iniciar manualmente:
> sudo /etc/init.d/redis-server start
E obtenho a mesma saída acima, só que desta vez o processo continua em execução.
Olhando para os registros em /var/log/redis/redis.log
e o arquivo está vazio.
Alguma idéia do que estou fazendo de errado?Eu inicio outros serviços como este (nginx, unicorn, mysql, etc) e eles estão funcionando bem.
Solução
Acredito que o processo redis terminará assim que a conexão ssh for encerrada.
Tente adicionar nada ao seu roteiro:
run "#{sudo} nohup /etc/init.d/redis-server #{cmd}"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow