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.