Voglio solo sapere la differenza tra in
reboot
init 6
shutdown -r now
e qual è il più sicuro e il migliore?
Risposta accettata:
Non c'è differenza in loro. Internamente fanno esattamente la stessa cosa:
-
reboot
utilizza loshutdown
comando (con l'opzione -r). Il comando di spegnimento utilizzato per terminare tutti i processi in esecuzione, smontare tutti i file system e infine dice al kernel di emettere il comando di alimentazione ACPI. La fonte può essere trovata qui.
Nelle distribuzioni precedenti il comando di riavvio forzava l'uscita dei processi emettendo ilSIGKILL
signal (ancora presente nei sorgenti, può essere invocato con-f
opzione), nelle distribuzioni più recenti il valore predefinito è il più grazioso e intuitivoinit 1 -> shutdown -r
. Ciò garantisce che i demoni si puliscano da soli prima dell'arresto. -
init 6
dice ainit
process per spegnere tutti i processi/daemon generati come scritti nei file init (nell'ordine inverso in cui sono iniziati) e infine invocareshutdown -r now
comando per riavviare la macchina
Oggi non c'è molta differenza in quanto entrambi i comandi fanno esattamente lo stesso e rispettano gli script init usati per avviare servizi/daemon invocando gli script di spegnimento per loro. Fatta eccezione per reboot -f -r now
come indicato di seguito
C'è una piccola spiegazione presa dalle manpage del perché reboot -f
non è sicuro:
-f, --force Force immediate halt, power-off, reboot. Don't contact the init system.
Modifica:
Dimenticato di menzionare, nelle prossime distribuzioni RHEL dovresti usare il nuovo systemctl
comando per emettere poweroff/reboot. Come indicato nelle manpage di reboot
e shutdown
sono "un comando legacy disponibile solo per compatibilità". e il systemctl
il metodo sarà l'unico sicuro.