Reinicie un linux cuando rootfs no esté disponible
¿Cómo se puede hacer que un dispositivo basado en Linux se reinicie una vez que su rootfs deja de estar disponible?
Solo hay un perro guardián de software disponible.
El problema es que rootfs se monta desde NFS. Cuando detengo el servidor NFS, el dispositivo se bloquea. Sin embargo, quiero que se reinicie. ¿Cómo puedo conseguir esto?
Es decir: hay un rootfs problemático, ¿hay algo en el nivel del kernel que pueda restablecer todo el sistema? No me preocupan los archivos y recursos abiertos / corruptos.
Nota: no tengo las fuentes del kernel para esta arquitectura. El dispositivo no tiene cabeza, no hay monitor ni teclado conectado. Hay una consola raíz con agetty(definido en /etc/inittab).
Respuestas
No indicó si tiene un teclado físico conectado, pero si lo tiene, entonces las "Teclas Mágicas SysRq" podrían ayudar. En tu caso
- Alt+ SysRq+ Spara sincronización de emergencia a disco, y
- Alt+ SysRq+ Bpara reinicio inmediato
debería hacer el trabajo. Tenga en cuenta que para que esto funcione es necesario que estas combinaciones de teclas no estén desactivadas, consulte la configuración en la /proc/sys/kernel/sysrqque se encuentra una máscara de bits con OR de las acciones SysRq permitidas (reproducida desde aquí ):
2 = 0x2 - enable control of console logging level
4 = 0x4 - enable control of keyboard (SAK, unraw)
8 = 0x8 - enable debugging dumps of processes etc.
16 = 0x10 - enable sync command
32 = 0x20 - enable remount read-only
64 = 0x40 - enable signalling of processes (term, kill, oom-kill)
128 = 0x80 - allow reboot/poweroff
256 = 0x100 - allow nicing of all RT tasks
También puede activar esto desde un script / programa de shell escribiendo a /proc/sysrq-trigger:
echo "b" > /proc/sysrq-trigger
Esto funcionará sin importar cuáles sean las configuraciones /proc/sys/kernel/sysrq, que solo restringen los eventos SysRq inducidos por el teclado.
Parece que necesitaría la opción de montaje onerror=panicpara su sistema de archivos raíz NFS, pero no estoy seguro de si funcionará con NFS. Es posible que también deba montar el sistema de archivos raíz NFS con la opción de montaje específica de NFS softpara que se agote el tiempo de espera y devuelva un error en lugar de volver a intentarlo para siempre.
Nota: la softopción de montaje puede causar daños en el archivo y / o pérdida de datos, pero en los comentarios dijiste específicamente que eso no te importa.
¿Vale la pena intentarlo?