Crear un servicio systemd
para ejecutar una aplicación Flask es una forma común de asegurar que la aplicación se ejecute de manera confiable en segundo plano y se inicie automáticamente al arrancar el sistema operativo. Systemd es un sistema de gestión de servicios y procesos disponible en sistemas Linux modernos que proporciona un control detallado sobre la configuración y ejecución de servicios del sistema.
Al crear un archivo de configuración de servicio de systemd para una aplicación Flask, puedes especificar el usuario, el directorio de trabajo, el comando de inicio y las opciones de reinicio, entre otros parámetros. Una vez que se ha creado el archivo de configuración, puedes usar los comandos de systemd para iniciar, detener y administrar el servicio de manera efectiva.
Crear un servicio systemd para ejecutar una aplicación Flask es particularmente útil para aplicaciones que necesitan ejecutarse continuamente en segundo plano, como aplicaciones web y monitores de sistema, ya que garantiza que la aplicación se ejecute de manera confiable y sin interrupciones incluso después de un reinicio del sistema operativo o fallos del sistema.
- Crea un archivo de configuración para el servicio. Por ejemplo, crea un archivo llamado
/etc/systemd/system/myapp.service
con el siguiente contenido:
[Unit]
Description=My Flask Application
[Service]
User=your_username
WorkingDirectory=/path/to/your/app
ExecStart=/usr/bin/python3 /path/to/your/app/main.py
Restart=always
[Install]
WantedBy=multi-user.target
Asegúrate de reemplazar your_username
con el nombre de usuario bajo el cual deseas ejecutar el servicio, /path/to/your/app
con la ruta al directorio donde se encuentra la aplicación Flask, y /path/to/your/app/main.py
con la ruta al archivo Python que contiene la aplicación Flask.
- Recarga el demonio de systemd para que reconozca los cambios realizados en la configuración:
sudo systemctl daemon-reload
- Inicia el servicio:
sudo systemctl start myapp
Esto iniciará la aplicación Flask en segundo plano como un servicio de sistema.
- Verifica el estado del servicio:
sudo systemctl status myapp
Debería mostrar el estado «activo (running)» si la aplicación Flask se está ejecutando correctamente.
- Habilita el servicio para que se inicie automáticamente en el arranque:
sudo systemctl enable myapp
Ahora la aplicación Flask se iniciará automáticamente en segundo plano cada vez que se reinicie el sistema.