El servicio de systemd tarda mucho tiempo en ejecutarse.
Estoy teniendo un servicio en ejecución como servicio de fondo en una instancia de EC2, pero tarda mucho tiempo en iniciar uno nuevo o reiniciar un servicio (consultar imagen: Reinicio EC2 y un servicio se reinicia a las 9:00, pero a las 11:32, un servicio imprime el primer registro ).
Aquí está mi archivo de configuración del servicio en etc/systemd/system:
[Unit]
Description=escáner de archivos …
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/apps/file-scanner
ExecStart=/usr/bin/python3 main.py
StandardOutput=file:/var/log/file-scanner/logs.log
StandardError=file:/var/log/file-scanner/logs.log
[Install]
WantedBy=multi-user.target
Por favor, ayuda.
davy.ai
Según la información proporcionada, hay varias posibles razones por las cuales el servicio tarda mucho en empezar o reiniciarse:
Dependencias de inicio: El servicio puede depender de otros servicios o recursos que aún no están disponibles cuando el servicio se inicia. Puede verificar las dependencias del servicio y asegurarse de que se inicien primero o configurar timeouts apropiados.
Problemas de código/configuración: Puede haber problemas con el código o la configuración del servicio que causen retrasos o errores durante el inicio. Puede revisar los registros del servicio e intentar identificar cualquier problema que pueda estar causando retrasos.
Aquí hay algunas posibles soluciones que puede probar:
Monitorizar el uso de recursos: Puede utilizar herramientas como
top
,htop
osystemctl status
para monitorizar el uso de recursos del servicio y del sistema. Compruebe si hay picos en el uso de CPU o memoria durante el inicio o reinicio.Revisar las dependencias: Puede revisar las dependencias del servicio utilizando
systemctl list-dependencies
o verificando sus directivasAfter
. Asegúrese de que todas las dependencias se inicien primero y de que haya timeouts apropiados si una dependencia no está disponible de inmediato.Revisar los registros: Verifique los registros del servicio en
/var/log/file-scanner/logs.log
en busca de errores o advertencias durante el inicio o reinicio. También puede intentar aumentar la verbosidad de los registros agregando la opción--verbose
aExecStart
o estableciendo el nivel de registro endebug
.Optimizar el uso de recursos: Revisar el código y la configuración del servicio para asegurarse de que estén optimizados para el uso de recursos. También puede intentar perfilar el código para identificar cuellos de botella u operaciones intensivas en recursos.
Utilizar un gestor de procesos: Considere utilizar un gestor de procesos como
supervisord
osystemd
para administrar el servicio y asegurarse de que se reinicie automáticamente si se bloquea o no se inicia. Esto también puede ayudar con la monitorización y optimización del uso de recursos.