rails digitalocean deploy app ruby-on-rails deployment capistrano3 puma

ruby-on-rails - deploy - digitalocean ruby on rails



¿Cómo reiniciar puma después de desplegar? (4)

Estoy usando Rails, Puma, Capistrano3. He instalado la gema capistrano3-puma también. Comencé Puma con Puma Jungle https://github.com/puma/puma/tree/master/tools/jungle/upstart

¿Cómo reinicio Puma durante la implementación?


Me encontré con el problema en el que necesito reiniciar puma después de algunos cambios en el entorno y no quería hacer un despliegue completo de la aplicación.

Sólo quería reiniciar puma y nginx. Aquí están los comandos que funcionaron para mí:

$ bundle exec cap production deploy:restart $ bundle exec cap production puma:restart

Espero que ayude a alguien


Por lo que sé, si está usando la gema capistrano3-puma , no necesita reiniciar el puma explícitamente después de la implementación. Hay una tarea add_default_hooks que hace puma:smart_restart después de la implementación.

Puedes ver la lista de tareas por cap -vT . Creo que la cap puma:restart hará el trabajo.


Puedes reiniciar manualmente usando el siguiente comando

bundle exec pumactl -P /home/deploy/.pids/puma.pid restart

Asegúrese de que apunta a la ruta pid pid correcta.


Producción

Si está utilizando capistrano en producción puede:

cap production deploy:restart

Desarrollo

Si se encuentra en un entorno de desarrollo, puede comenzar a buscar el pid.

ps aux | grep puma

Verás algo como esto:

user 11654 0.0 13.4 870204 137016 ? Sl Jul07 0:39 puma 2.13.4 (tcp://0.0.0.0:3000) [NameOfYourApp]

El número junto al nombre de usuario, en este caso 11654 es el ID de proceso (PID) del servidor puma. Puedes matarlo manualmente y reiniciar el servidor después. Ejecute este comando:

kill -s 15 11654

Este comando indica que se debe finalizar el proceso con el id 11654 mediante la señal SIGTERM (código 15) . SIGTERM elimina el proceso de forma "amable" al cerrar todos los archivos, conexiones, búferes de limpieza, etc.

Último ejecutas este comando:

puma -e development -p 3000 -d

Puma se iniciará de nuevo en modo de desarrollo, escuchando en el puerto 3000 y se demonizará la ejecución.