Tutoriales

Cómo reiniciar automáticamente un servicio fallido en Linux

existir Linux sistema, Atender (también conocido como Demonio) juega un papel clave en el manejo de diversas tareas, como alojamiento web, gestión de bases de datos y redes. Sin embargo, el servicio a veces puede bloquearse o detenerse debido a errores, un alto uso de recursos o fallas inesperadas en el sistema.

Para evitar el tiempo de inactividad y garantizar un funcionamiento sin problemas, los administradores del sistema pueden configurar los servicios para reiniciar automáticamente cuando fallan, lo que es especialmente útil para los servidores web (apache,,,,, nginx),base de datos(mysql,,,,, Postgresql), u otras aplicaciones críticas que deben estar siempre disponibles.

En esta guía, explicaremos cómo configurar los servicios de Linux para reiniciar automáticamente usando Systemd.

¿Por qué reiniciar automáticamente el servicio?

Hay varias razones por las que es posible que desee reiniciar automáticamente el servicio en Linux:

  • Minimizar el tiempo de inactividad: Si el servicio se detiene inesperadamente, el reinicio automático garantiza que el usuario encuentre una interrupción mínima.
  • Mejorar la confiabilidad: Los servicios como servidores web, bases de datos y procesos de fondo siempre deben ejecutarse.
  • Reducir el trabajo manual: Sin automatización, debe verificar el servicio con frecuencia y reiniciar manualmente en caso de falla.
  • Manejo de fallas inesperadas: Si un servicio se bloquea debido a un error de software, restricciones de recursos o error del sistema, el Sistema D puede reiniciarlo sin intervención.
LEER  KDE Frameworks 5.79 lanzado con más mejoras de Dolphin, más de 300 cambios

Ahora configuremos el reinicio automático utilizando los pasos System.

Paso 1: determine el servicio para reiniciar

Antes de hacer cambios, debe saber el nombre exacto del servicio que desea configurar enumerando todos los servicios en ejecución.

systemctl list-units --type=service --state=running
Lista de servicios de Linux

Si ya conoce el nombre del servicio, puede verificar su estado.

systemctl status apache2
Verifique el estado del servicio en ejecución
Verifique el estado del servicio en ejecución

reemplazar apache2 Use el nombre de servicio real que desea administrar.

Paso 2: edite la configuración del servicio

System Le permite modificar el comportamiento del servicio utilizando archivos de configuración personalizados. Usaremos systemctl edit Crea un archivo de superposición.

Ejecute el siguiente comando:

systemctl edit apache2

Esto abrirá un archivo en blanco en su editor de texto predeterminado.

Si el archivo no está vacío, verá la configuración existente que se puede modificar. De lo contrario, debe agregar la configuración de reinicio necesaria.

Abrir archivo de configuración de servicio Systemd
Abrir archivo de configuración de servicio Systemd

Paso 3: Agregue SystemD para reiniciar la configuración

En el editor, agregue la siguiente línea.

[Service]
Restart=always
RestartSec=5s

Explicación de estas configuraciones:

  • Restart=always – Independientemente de la razón, es posible asegurarse de que el servicio se reinicie cuando se detiene.
  • RestartSec=5s – Dígale a SystemD que espere 5 segundos antes de reiniciar el servicio, lo que evita un reinicio rápido del bucle en caso de fallas repetidas.

Después de agregar, guarde y cierre el archivo.

Agregar servicio para reiniciar la configuración
Agregar servicio para reiniciar la configuración

Después de cambiar el servicio SystemD, debe recargar SystemD y reiniciar el servicio para asegurarse de que se aplique la nueva configuración:

sudo systemctl daemon-reload
sudo systemctl restart apache2

Para confirmar que el servicio ahora está configurado para reiniciar automáticamente, ejecute:

sudo systemctl show apache2 | grep Restart

Si todo está configurado correctamente, debería ver:

Restart=always

Paso 4: Pruebe el reinicio automático en Linux

Para garantizar que la configuración sea válida, puede detener manualmente el servicio y verificar si se reinicia.

sudo systemctl stop apache2

Espere 5 segundos y verifique su estado.

sudo systemctl status apache2

Si el servicio se ejecuta nuevamente, ¡el reinicio automático está funcionando!

Otras opciones de reinicio

Dependiendo de sus necesidades, Systemd proporciona diferentes estrategias de reinicio:

  • Restart=always – El servicio siempre se reinicia incluso si se detiene manualmente.
  • Restart=on-failure – Reinicie solo si el servicio tiene un error (pero si se detiene manualmente).
  • Restart=on-abnormal – Si el servicio se bloquea debido a una señal (como una falla de segmentación), reinicie el servicio.
  • Restart=on-watchdog – Si el servicio se inicia en tiempo de ejecución, reinicie el servicio.

Puedes reemplazar Restart=always Dependiendo de sus requisitos, cualquiera de estas opciones.

Cómo ver el registro de servicio del problema

Si el servicio sigue fallando, es mejor verificar los registros utilizando el comando JournalCTL, que mostrará los registros de servicio durante los últimos 10 minutos.

journalctl -u apache2 --since "10 minutes ago"

Para transmisiones de registro en tiempo real, use:

journalctl -u apache2 -f
en conclusión

Configurar un reinicio automático para un servicio fallido asegura que las aplicaciones críticas continúen funcionando sin intervención manual. Al usar la opción de reinicio de Systemd, puede minimizar el tiempo de inactividad, mejorar la estabilidad del sistema y reducir la necesidad de solucionar problemas manuales.

LEER  Ubuntu 20.10 "Groovy Gorilla" ha llegado al final de su vida útil, actualice a Ubuntu 21.04 ahora

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba