CAPISTRANO Успешно начинает Redis-сервер, но он не работает, когда я вошел в систему

StackOverflow https://stackoverflow.com//questions/12715874

  •  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}"
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top