Capistrano inicia Redis-Server con éxito, pero no se está ejecutando cuando inicie sesión
-
13-12-2019 - |
Pregunta
Tengo un script de Capistrano que puede controlar mi servidor Redis.Aquí está la tarea en cuestión:
%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
Sin embargo, Redis-Server no se está ejecutando cuando I SSH. Funciona si lo inicio manualmente:
> sudo /etc/init.d/redis-server start
y obtengo la misma salida que arriba, solo esta vez el proceso permanece en marcha.
Mirando los registros en /var/log/redis/redis.log
y el archivo está vacío.
¿Alguna idea de lo que estoy haciendo mal?Comenzco otros servicios como este (Nginx, Unicorn, MySQL, etc.) y los están funcionando bien.
Solución
Creo que el proceso de Redis está terminando una vez que termina la conexión SSH.
intente agregar nohup a su script:
run "#{sudo} nohup /etc/init.d/redis-server #{cmd}"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow