Capistrano démarre le serveur Redis avec succès, mais il ne fonctionne pas lorsque je me connecte

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

  •  13-12-2019
  •  | 
  •  

Question

J'ai un script Capistrano qui peut contrôler mon serveur Redis.Voici la tâche en question :

  %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

Cependant, le serveur Redis ne fonctionne pas lorsque je me connecte.Cela fonctionne si je le démarre manuellement :

> sudo /etc/init.d/redis-server start

Et j'obtiens le même résultat que ci-dessus, mais cette fois, le processus reste en cours d'exécution.

En regardant les journaux sur /var/log/redis/redis.log et le fichier est vide.

Avez-vous une idée de ce que je fais de mal ?Je démarre d'autres services comme celui-ci (nginx, unicorn, mysql, etc.) et ceux-ci fonctionnent bien.

Était-ce utile?

La solution

Je pense que le processus Redis se termine une fois la connexion SSH terminée.

Essayez d'ajouter non à votre script:

run "#{sudo} nohup /etc/init.d/redis-server #{cmd}"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top