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
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.
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
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).