¿Cómo forzar el reinicio de tu aplicación Python tras una actualización? Imprimir

  • 0

Cuando estás desarrollando o actualizando tu aplicación Python (ya sea con frameworks como Django, Flask o FastAPI) en tu hosting cPanel, es sumamente común subir un archivo actualizado por FTP o Git y notar con frustración que la web sigue mostrando la versión antigua.

No te preocupes, tu código no está mal y el servidor tampoco está fallando. Este comportamiento se debe a que cPanel utiliza un servidor de aplicaciones llamado Phusion Passenger. Para que tu aplicación web sea increíblemente rápida, Passenger carga tu código en la memoria del servidor de forma persistente. El "problema" es que, hasta que no le ordenes explícitamente a Passenger que limpie esa memoria, seguirá ejecutando el proceso antiguo.

En este artículo te enseñaremos los dos métodos más rápidos y eficientes para forzar el reinicio de tu aplicación Python en cPanel y ver tus cambios reflejados de inmediato.

Método 1: Desde la interfaz visual "Setup Python App" (El más sencillo)

Si prefieres realizar el reinicio de manera gráfica con un par de clics, cPanel cuenta con un botón dedicado exclusivamente para esta tarea.

1. Entra a cPanel: Paso 1.

Inicia sesión en tu cuenta de cPanel.

2. Abre el gestor de Python: Paso 2.

Desplázate hasta la sección Software y haz clic en la herramienta Setup Python App (Configurar aplicación Python).

3. Localiza tu aplicación: Paso 3.

En la pestaña Web Applications, verás una lista con todas las aplicaciones de Python que tienes configuradas en tu hosting. Busca la aplicación que acabas de actualizar.

4.Presiona el botón de reinicio: Paso 4.

En la columna de acciones de tu aplicación (a la derecha de la pantalla), busca el icono de una flecha circular o haz clic en el botón de edición y presiona el botón azul que dice Restart (Reiniciar).

Una vez que haces clic, el sistema tardará apenas uno o dos segundos en refrescarse. Si vuelves a cargar tu sitio web en el navegador, verás aplicados todos tus cambios recientes.

Método 2: El truco del archivo "restart.txt" (Ideal para automatizar)

Si estás actualizando tu código constantemente, entrar a cPanel a presionar el botón de reinicio en cada cambio se vuelve una tarea bastante molesta. Por suerte, Phusion Passenger incluye una función secreta muy útil: vigila la carpeta de tu aplicación en busca de un archivo específico para reiniciarse solo.

Cada vez que Passenger recibe una visita en tu web, comprueba si la fecha de modificación del archivo tmp/restart.txt ha cambiado. Si detecta que el archivo es más nuevo que el proceso que tiene en memoria, reinicia la aplicación de forma automática y transparente.

Cómo configurarlo por primera vez:

  1. Abre el Administrador de Archivos de cPanel.

  2. Entra a la carpeta raíz de tu aplicación Python (donde se encuentran tus archivos passenger_wsgi.py o manage.py).

  3. Crea una nueva carpeta llamada tmp (si es que no existe ya).

  4. Dentro de esa nueva carpeta tmp, crea un archivo de texto vacío y nómbralo exactamente como restart.txt.

¿Cómo forzar el reinicio a partir de ahora?

A partir de ahora, cada vez que subas cambios en tu código, solo debes "tocar" o editar ese archivo restart.txt.

  • Si usas el Administrador de Archivos: Abre el archivo restart.txt, escribe una letra cualquiera, bórrala y haz clic en guardar. Esto actualizará la fecha de modificación del archivo en el servidor y Passenger reiniciará la app en la próxima visita.

  • Si usas la Terminal de cPanel o SSH: Ejecuta el comando touch apuntando al archivo:

     
    touch /home/tu_usuario/tu_app/tmp/restart.txt
    

    (Reemplaza la ruta por la ubicación real de tu archivo).

Consejo para desarrolladores avanzados:

Si utilizas sistemas de despliegue continuo (CI/CD) como GitHub Actions o GitLab CI, puedes añadir la línea touch tmp/restart.txt al final de tu script de despliegue. De esta forma, cada vez que hagas un git push a tu servidor, tu aplicación Python se actualizará y se reiniciará sola sin que tengas que intervenir.

¿Tu aplicación sigue sin actualizarse o muestra error?

Si después de forzar el reinicio sigues viendo la versión anterior o te aparece un error del tipo "502 Bad Gateway", es muy probable que haya un error de sintaxis en el archivo que acabas de subir o que falte alguna dependencia por instalar en tu entorno virtual.

Puedes revisar los registros de errores buscando un archivo llamado stderr.log o error_log dentro de la carpeta raíz de tu aplicación para descubrir exactamente qué línea de código está causando el conflicto.

 


¿Le ha resultado útil esta respuesta?

« Atrás