Tal como vimos en el apartado anterior de solución de errores, es mejor arrancar estas aplicaciones como servicios, así se pueden reactivar sin problemas.
También se vió como se debe arrancar uvicorn para que pueda tener varios workers en marcha y así no bloquee su ejecución a otros usuarios si está ejecutando una tarea larga como la de captura de decretos.
Veamos los ficheros de servicio que se guardan en /etc/systemd/system
python_menus_mnu_main_py.service:
[Unit] Description=Softprop Menu Main Python Service After=network.target [Service] # Usuario y grupo que ejecutarán el servicio User=informatica Group=informatica # Directorio de trabajo base WorkingDirectory=/home/informatica/eduApps # Activar entorno virtual Environment="PATH=/home/informatica/eduApps/softprop/venv_softprop/bin" # Ejecutar directamente el script (usa el shebang) SOLO USA UN WORKER #ExecStart=/home/informatica/eduApps/softprop/menus/mnu_main.py # Ejecutar uvicorn directamente (importa el módulo mnu_main:app) ExecStart=/home/informatica/eduApps/softprop/venv_softprop/bin/uvicorn softprop.menus.mnu_main:app \ --host proves.tavernes.es \ --port 5000 \ --workers 4 \ --ssl-keyfile /home/informatica/eduApps/softprop/static/certs/wildcard.municipio.es.key \ --ssl-certfile /home/informatica/eduApps/softprop/static/certs/wildcard.municipio.es.crt # Reinicio automático en caso de error Restart=always RestartSec=5 # Redirección de logs StandardOutput=append:/var/log/softprop_menus_menu_main.log StandardError=append:/var/log/softprop_menus_mnu_main.err [Install] WantedBy=multi-user.target
y para el servicio de autenticación python_authentication_xmopenresty_py.service:
[Unit]
Description=Softprop OpenResty Python Service After=network.target[Service]
# Usuario y grupo del servicio User=informatica Group=informatica # Directorio base del proyecto WorkingDirectory=/home/informatica/eduApps # Activar entorno virtual Environment="PATH=/home/informatica/eduApps/softprop/venv_softprop/bin" #ExecStart=/home/informatica/eduApps/softprop/authentication/xmopenresty.py # Ejecutar uvicorn directamente importando el módulo ExecStart=/home/informatica/eduApps/softprop/venv_softprop/bin/uvicorn softprop.authentication.xmopenresty:app \ --host 192.168.28.16 \ --port 5001 \ --workers 4 \ --ssl-keyfile /home/informatica/eduApps/softprop/static/certs/wildcard.municipio.es.key \ --ssl-certfile /home/informatica/eduApps/softprop/static/certs/wildcard.municipio.es.crt # Reiniciar automáticamente en caso de error Restart=always RestartSec=5 #Logs StandardOutput=append:/var/log/softprop_authentication_openresty.log StandardError=append:/var/log/softprop_authentication_openresty.err[Install]WantedBy=multi-user.target
Ahora hay que hacer estas tareas:
sudo systemctl restart python_menus_mnu_main_py.service
sudo systemctl restart python_authentication_xmopenresty_py.service
sudo systemctl restart python_authentication_xmopenresty_py.service
y sobre todo controlar los LOGS !! que crecen mucho
/var/log/softprop_menus_menu_main.log
/var/log/softprop_menus_mnu_main.err
/var/log/softprop_authentication_openresty.log
/var/log/softprop_authentication_openresty.err
/var/log/softprop_menus_mnu_main.err
/var/log/softprop_authentication_openresty.log
/var/log/softprop_authentication_openresty.err
No hay comentarios :
Publicar un comentario