CAPISTRANO Успешно начинает Redis-сервер, но он не работает, когда я вошел в систему
-
13-12-2019 - |
Вопрос
У меня есть скрипт CAPistrano, который может управлять моим сервером Redis.Вот задача под вопросом:
%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
.
Однако Redis-сервер не работает, когда я SSH в. Это работает, если я начну его вручную:
> sudo /etc/init.d/redis-server start
.
И я получаю тот же выход, что и выше, только на этот раз процесс остается запущенным.
Смотреть в журналы на /var/log/redis/redis.log
и файл пуст.
Есть идеи, что я делаю не так?Я запускаю другие услуги, такие как это (NGINX, Unicorn, Mysql и т. Д.), и те работают нормально.
Решение
Я считаю, что процесс Redis заканчивается после завершения соединения SSH.
Попробуйте добавить NOHUP на ваш скрипт:
run "#{sudo} nohup /etc/init.d/redis-server #{cmd}"
. Не связан с StackOverflow