Riavviare il Kernel senza riavviare il sistema in Linux
Ad ogni aggiornamento del Kernel, è richiesto il riavvio del sistema per applicare le patch e usare la nuova versione.
Se stiamo sul pc di casa, nessun problema; ma se siamo su un server di produzione (e non ne abbiamo uno di backup) rischiamo di dare un disservizio.
Però è fondamentale assicurare l'uso dell'ultima versione.
Una soluzione al problema può arrivare da Kexec.
Kexec-Tool è in grado di caricare in memoria l'intero Kernel e avviare il processo di aggiornamento senza riavviare il sistema.
In certi casi, soprattutto in caso di grossi aggiornamenti, è stata rilevata un pò di instabilità; in quela caso non possiamo far altro che riavviare.
Per installare il programma su Debian e derivate:
# aptitude install kexec-tool
A questo punto aggiornaimo il Kernel con il normale aggiornamento dei repo (se è previsto un aggiornamento ovviamente), e poi lanciamo questo comando:
# latestkernel=`ls -t /boot/vmlinuz-* | sed "s/\/boot\/vmlinuz-//g" | head -n1`
Dopo di che verifichiamo il corretto aggiornamento con:
# echo $latestkernel
Se è tutto ok diamo questi altri comandi:
# kexec -l /boot/vmlinuz-${latestkernel} --initrd=/boot/initramfs-${latestkernel}.img --append="`cat /proc/cmdline`"
# kexec -e
# uname -r
L'ultimo dovrebbe indicarci il Kernel usato; così possiamo controllare che stiamo usando l'ultima versione installata.
Enjoy!
linux kernel kexec kexec-tool
Commentami!