Además de actualizar el kernel, ¿hay algún cambio en un sistema Linux que requiera un reinicio? Sé que hay situaciones en las que un reinicio facilita las cosas, pero ¿hay alguna que no se pueda lograr excepto con un reinicio?
Para aclarar: estoy pensando en un sistema de escritorio o servidor típico que no sufre un mal funcionamiento del hardware.
Respuestas:
Un par de cosas vienen a la mente:
Recuperarse de un kernel panic
Un kernel panic, por definición, no se puede recuperar sin reiniciar el kernel.
Recuperarse de bloqueos que lo dejan sin acceso a la terminal
Si el sistema no responde y está varado sin una forma de emitir comandos para recuperarse, lo único que puede hacer es reiniciar. Por lo general, querrás evitar el ciclo de potencia manual. Para este tipo de situaciones, el kernel de Linux tiene soporte Magic SysRq que se puede usar para reiniciar la máquina en caso de emergencia.
Mientras la
CONFIG_MAGIC_SYSRQ
opción se haya habilitado en la configuración del kernel y lakernel.sysrq
sysctl
opción esté habilitada, puede emitir comandos directamente al kernel con combinaciones mágicas de teclas SysRq:Tenga en cuenta que Alt+ a SysRqcontinuación significa presionar y mantener presionado Alt , luego presionar y mantener presionado SysRq (normalmente la PrintScrntecla).
SIGTERM
a todos los procesos, exceptoinit
, dándoles la oportunidad de terminar con graciaSIGKILL
a todos los procesos, exceptoinit
forzarlos a terminarAlt+ SysRq+ b: reiniciar, o
Alt+ SysRq+ o: apagado
Una mnemotécnica para las combinaciones mágicas de teclas SysRq para intentar un reinicio elegante es:
" R eboot E ven I f S istema U tterly B roke "
Para los servidores sin cabeza, incluso hay un objetivo de iptables que permite secuencias SysRq remotas a través de una red.
Recuperarse del estado no arrancable
Si el sistema ya ha sido llevado a un estado donde no es posible un arranque regular (por ejemplo, como resultado de una actualización fallida del sistema, sistema de archivos dañado, etc.), entonces la única forma de acceder a una consola de recuperación en el sistema podría ser reiniciar usando las opciones apropiadas de tiempo de arranque.
Cambiar los parámetros del kernel en el tiempo de arranque
Algunos parámetros del kernel (por ejemplo,
audit
para habilitar / deshabilitar la auditoría del kernel) solo se pueden configurar cuando el kernel se carga en el momento del arranque.fuente
Hay dos veces que puedo pensar en dónde me gustaría reiniciar:
Cuando necesito asegurarme de que el sistema se puede iniciar en el estado correcto.
Una vez trabajé en un sistema que tenía algún demonio configurado mientras se estaba ejecutando. Después de que se ejecutó durante algunos años, una falla de energía provocó que se reiniciara, pero el demonio no era parte del proceso de inicio y nadie tenía idea de cómo se había configurado años antes. El sistema estuvo inactivo durante días mientras descubríamos cómo reconfigurarlo.
En realidad, reiniciar es la única forma de saber con certeza que su sistema se reiniciará correctamente después de una falla de energía.
Cuando se ha actualizado una biblioteca del sistema.
Digamos que se ha descubierto una falla de seguridad importante en una biblioteca que se comparte con muchas aplicaciones / servidores en el sistema. Puede actualizar la biblioteca sin reiniciar, pero ¿cuántos procesos se siguen ejecutando con la biblioteca insegura cargada? Puede reiniciar minuciosamente cualquier cosa utilizando la biblioteca anterior (si puede resolverlo), pero eso es propenso a errores y puede llevar más tiempo que simplemente reiniciar.
El reinicio es la mejor manera de asegurarse de que todos los procesos en ejecución aún no estén utilizando la antigua biblioteca con errores.
fuente
lsof
antes de actualizar las bibliotecas.Si quiere decir cambios planificados en la configuración del software y asume que el hardware funciona perfectamente (todavía no lo he visto) y un software libre de errores (ya sabe ...), entonces solo un error en el núcleo o un controlador lo obligaría a reiniciar. :)
Aparte de eso ... No estoy seguro de si sería posible reemplazarlo
init
sin cambiar al modo de usuario único y hacer algo de magia que esencialmente no es muy diferente a un reinicio.fuente