web-dev-qa-db-fra.com

comment redémarrer Unicorn manuellement

Je ne suis pas sûr que Unicorn redémarre correctement lorsque j'exécute cap deploy car certaines modifications n'apparaissent pas dans l'application, j'ai donc voulu redémarrer Unicorn manuellement sur mon serveur distant. J'ai navigué dans etc/init.d et consultez la liste de Unicorn_myapp mais ce n'est pas un répertoire (c'est-à-dire que je ne peux pas y entrer). Sur la base du code ci-dessous de mon fichier deploy.rb, puis-je faire quelque chose d'ici pour redémarrer la licorne?

J'ai essayé de faire run Unicorn_myapp restart mais il a dit run n'est pas une commande

namespace :deploy do
  %w[start stop restart].each do |command|
    desc "#{command} Unicorn server"
    task command, roles: :app, except: {no_release: true} do
      run "/etc/init.d/Unicorn_#{application} #{command}"
    end
  end
15

vous n'avez pas répertorié le système d'exploitation. mais l'un des éléments suivants devrait fonctionner.

vous devrez être root/utiliser Sudo

/etc/init.d/Unicorn_myapp restart 


/etc/init.d/Unicorn_myapp stop 
/etc/init.d/Unicorn_myapp start 


service Unicorn_myapp restart

service Unicorn_myapp stop
service Unicorn_myapp start

Essayez d'abord les versions de redémarrage, mais selon la façon dont le script init a été écrit, il se peut qu'il ne dispose pas d'une commande de redémarrage, si cela ne fonctionne pas, vous pouvez faire la version stop/start.

28
Doon

Alternativement, au lieu de s'appuyer sur des scripts /etc/init.d... Qui dépendent du système d'exploitation, un moyen simple de redémarrer Unicorn consiste à envoyer un signal HUP (1) à son processus maître.

Voici par exemple comment je recharge automatiquement une application après un git Push Via post-receive Hook:

#!/bin/sh
Unicorn_pid=`cat /tmp/pids/Unicorn.pid`
echo "Restarting Unicorn ($Unicorn_pid)"
kill -HUP $Unicorn_pid

Dans votre cas, le script /etc/init.d/Unicorn_myapp restart Fait probablement cela. Vérifiez le fichier Unicorn.conf pour l'emplacement de son fichier pid.

Pour plus de détails, voir documentations Unicorn SIGNALS

26
Vincent Guerci

Il se peut que vous deviez être root, mais il devrait simplement être /etc/init.d/Unicorn_myapp restart (n'incluez pas run, qui n'est pas une commande Shell).

5
wwwslinger