web-dev-qa-db-fra.com

Comment redémarrer Puma après le déploiement?

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?

34
mystdeim

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.

44
JamesDullaghan

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.

20
René Michel

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

13
Ray Hunter

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.

2
Sharvy Ahmed