
Ubicación: Inicio > Programación > Ruby > Reiniciar una aplicación Rails
Si tras hacer un cambio de configuración o en algún archivo de tu aplicación Rails observas que el cambio que has hecho no se lleva a cabo, no te preocupes, tiene su explicación.
Si tu aplicación se ejecuta vía FastCGI habrá un proceso Ruby ejecutandose que es el encargado de ejecutar tu aplicación Rails. Mientrás este interprete de Ruby continue cargado los cambios de configuración en tu aplicación no se llegarán a aplicar, ya que estos sólo se leen la primera vez que el interprete arranca.
Por tanto, la solución es matar o terminar al proceso Ruby fornzando así a que este se vuelva a cargar. Para hacer esto, lo más sencillo es acceder a tu cuenta vía SSH y ejecutar el siguinte comando:
for x in `ps x | grep ruby | grep -v grep | awk '{print $1}'`; do kill -9 $x; done
Este comando matará todos los procesos Ruby de tu usuarios, forzando a que tu aplicación se reinicie.
Otra opción, igual de eficaz pero más “burra”, es que ejecutes el siguiente comando:
pkill -9 -u <usuario>
Al ejecutar ese comando matarás todos los procesos de tu usuario, lo cual además de reiniciar tu aplicación Rails, cerrará tu sesión SSH y serás desconectado.
Si tu aplicación Rails se ejecuta vía Passenger debes comunicarle a Passenger la necesidad de reiniciar la aplicación, y eso se hace ejecutando el siguiente comando:
touch <aplicacion>/tmp/restart.txt
Se entiende que <aplicacion> es el directorio raíz de tu aplicación Rails, es decir, el directorio contenedor de los directorios config, apps, public, etc.
Puede que en tu aplicación no exista el directorio tmp, en ese caso, antes de ejecutar el citado comando tendrás que crear el directorio:
mkdir <aplicacion>/tmp
© Ekostat Informatica, S.L. - Aviso legal - Creditos - Mapa - ( XHTML y CSS correctos )