J'utilise Rails, Puma, Capistrano3. J'ai installé la gemme capistrano3-puma
ainsi que. J'ai commencé Puma avec Puma Jungle https://github.com/puma/puma/tree/master/tools/jungle/upstart
Comment redémarrer Puma pendant le déploiement?
Vous pouvez redémarrer manuellement à l'aide de la commande suivante
bundle exec pumactl -P /home/deploy/.pids/puma.pid restart
Assurez-vous de pointer vers le chemin pid correct.
Production
Si vous utilisez capistrano en production, vous pouvez:
cap production deploy:restart
Développement
Si vous êtes dans un environnement de développement, vous pouvez commencer à chercher le pid
ps aux | grep puma
Vous verrez quelque chose comme ceci:
user 11654 0.0 13.4 870204 137016 ? Sl Jul07 0:39 puma 2.13.4 (tcp://0.0.0.0:3000) [NameOfYourApp]
Le numéro à côté du nom d'utilisateur, dans ce cas 11654
est l'ID de processus (PID) du serveur puma. Vous pouvez le tuer manuellement et redémarrer le serveur après. Exécutez cette commande:
kill -s 15 11654
Cette commande dit tuer le processus avec l'id 11654 en utilisant le signal SIGTERM (code 15) . SIGTERM tue le processus en fermant "gentiment" tous les fichiers, connexions, nettoyage des tampons, etc.
Dernière exécution de cette commande:
puma -e development -p 3000 -d
Puma sera redémarré en mode développement, en écoutant sur le port 3000 et l'exécution sera diabolisée.
J'ai rencontré le problème où je dois redémarrer puma après certains changements d'environnement et je ne voulais pas faire un déploiement complet de l'application.
Je voulais seulement redémarrer puma et nginx. Voici les commandes qui ont fonctionné pour moi:
$ bundle exec cap production deploy:restart
$ bundle exec cap production puma:restart
J'espère que cela aide quelqu'un
Pour autant que je sache, si vous utilisez capistrano3-puma
gem, vous n'avez pas besoin de redémarrer explicitement puma après le déploiement. Il y a une tâche add_default_hooks
qui fait puma:smart_restart
après le déploiement.
Vous pouvez voir la liste des tâches par cap -vT
. Je pense cap puma:restart
fera le travail.