GNU/Linux >> Tutoriales Linux >  >> Linux

¿El apagado tarda demasiado? Aquí se explica cómo investigar y corregir el tiempo de apagado prolongado en Linux

¿Su sistema Linux tarda demasiado en apagarse? Estos son los pasos que puede seguir para averiguar qué está causando el apagado retrasado y solucionar el problema.

Espero que estés un poco familiarizado con el concepto sigterm y sigkill.

Cuando apaga su sistema Linux, envía el sigterm y pide cortésmente que se detengan los procesos en ejecución. Algunos procesos se comportan mal e ignoran el sigterm y continúan ejecutándose.

Esto podría causar un retraso en el proceso de apagado, ya que su sistema esperará a que los procesos en ejecución se detengan durante un período de tiempo predefinido. Después de este período de tiempo, envía la señal de interrupción para forzar la detención de todos los procesos en ejecución restantes y apaga el sistema. Recomiendo leer sobre sigterm vs sigkill para entender la diferencia.

De hecho, en algunos casos, verá un mensaje como "se está ejecutando un trabajo detenido" en la pantalla negra.

Si su sistema tarda demasiado en apagarse, puede hacer lo siguiente:

  • Compruebe qué proceso/servicio está tardando demasiado y si puede eliminarlo o volver a configurarlo para que se comporte correctamente.
  • Cambie el período de espera predeterminado antes de que su sistema detenga los procesos en ejecución. [Solución rápida y sucia]

Estoy usando Ubuntu aquí, que usa systemd. Los comandos y pasos aquí son válidos para cualquier distribución de Linux que use systemd (la mayoría lo hace).

Compruebe qué procesos están provocando un apagado prolongado en Linux

Si desea averiguar qué está mal, debe verificar qué sucedió en el último apagado. Usa este comando para obtener el poder de "Sé lo que hiciste en la última sesión" (juego de palabras):

journalctl -rb -1

El comando journalctl le permite leer los registros del sistema. Con las opciones '-b -1', filtra los registros de la última sesión de arranque. Con la opción '-r', los registros se muestran en orden cronológico inverso.

En otras palabras, el comando 'journalctl -rb -1' mostrará los registros del sistema justo antes de que su sistema Linux se apagara por última vez. Esto es lo que necesita para analizar el problema de apagado prolongado en Linux.

¿No hay registros de diario? Esto es lo que debe hacer

Si no hay registros diarios, asegúrese de que su distribución use systemd.

Incluso en algunas distribuciones de Linux con systemd, los registros diarios no están activados de forma predeterminada.

Asegúrese de que exista /var/log/journal. Si no es así, créalo:

sudo mkdir /var/log/journal

También debe verificar el contenido del archivo /etc/systemd/journald.conf y asegurarse de que el valor de Almacenamiento esté establecido en automático o persistente.

¿Encuentras algo sospechoso en los registros? ¿Hay un proceso/servicio que se niega a detenerse? En caso afirmativo, investigue si podría eliminarlo sin efectos secundarios o si podría reconfigurarlo. No vayas eliminando cosas a ciegas aquí, por favor. Debe tener conocimiento del proceso.

Acelere el apagado en Linux al reducir el tiempo de espera de detención predeterminado [Solución rápida]

El período de espera predeterminado para el apagado generalmente se establece en 90 segundos. Su sistema intenta forzar la detención de los servicios después de este período de tiempo.

Si desea que su sistema Linux se apague rápidamente, puede cambiar este período de espera.

Encontrará todas las configuraciones de systemd en el archivo de configuración ubicado en /etc/systemd/system.conf. Este archivo debe llenarse con muchas líneas que comiencen con #. Representan los valores predeterminados de las entradas en el archivo.

Antes de hacer nada, sería una buena idea hacer una copia del archivo original.

sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.orig

Busque DefaultTimeoutStopSec aquí. Probablemente debería establecerse en 90 segundos.

#DefaultTimeoutStopSec=90s

Tienes que cambiar este valor a algo más conveniente como 5 o 10 segundos.

DefaultTimeoutStopSec=5s

Si no sabe cómo editar el archivo de configuración en la terminal, use este comando para abrir el archivo para editarlo en el editor de texto predeterminado de su sistema (como Gedit):

sudo xdg-open /etc/systemd/system.conf

No olvides eliminar el # antes de DefaultTimeoutStopSec . Guarde el archivo y reinicie su sistema.

Esto debería ayudarlo a reducir el retraso en el apagado de su sistema Linux.

¡Problema de vigilancia!

Linux tiene un módulo llamado perro guardián que se usa para monitorear si ciertos servicios se están ejecutando o no. Podría configurarse para reiniciar automáticamente los sistemas si se bloquean debido a un error de software.

Es inusual usar Watchdog en sistemas de escritorio porque puede apagar o reiniciar manualmente el sistema. A menudo se usa en servidores remotos.

El primer control de vigilancia se está ejecutando:

ps -af | grep watch*

Si Watchdog se está ejecutando en su sistema, puede cambiar el valor de ShutdownWatchdogSec de 10 minutos a algo más bajo en el archivo de configuración de systemd /etc/systemd/system.conf.

Lectura recomendada:

Averigüe cuánto tiempo se tarda en iniciar su sistema Linux

¿Cuánto tiempo tarda en arrancar su sistema Linux? Aquí se explica cómo averiguarlo con el comando systemd-analyze.

¿Pudiste solucionar el prolongado cierre?

Espero que este tutorial lo haya ayudado a investigar y solucionar el problema de apagado prolongado en su sistema. Déjame saber en los comentarios si lograste arreglarlo.



Linux
  1. Cómo deshabilitar los comandos de apagado y reinicio en Linux

  2. Cómo verificar la versión del sistema operativo y Linux

  3. Comandos de reinicio y apagado de Linux

  4. Cómo ver la fecha y hora de reinicio del sistema Linux

  5. Cómo usar el comando de apagado y reinicio de Linux con ejemplos

Cómo instalar y configurar Redis en el sistema Linux

Cómo rastrear y rastrear un proceso de Linux

Cómo instalar y usar YouTube-DL en el sistema Linux

Cómo cambiar el nombre de usuario y el nombre de host en el sistema Linux

Cómo instalar y configurar AnyDesk en el sistema Linux

Cómo instalar y configurar Django en un sistema Linux