Non c'è differenza in loro. Internamente fanno esattamente la stessa cosa:
-
reboot
utilizza ilshutdown
comando (con l'opzione -r). Il comando shutdown utilizzato per terminare tutti i processi in esecuzione, smontare tutti i file system e infine indica al kernel di emettere il comando ACPI power. La fonte può essere trovata qui. Nelle distribuzioni precedenti il comando reboot forzava l'uscita dei processi emettendoSIGKILL
signal (si trova ancora nelle fonti, 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 alinit
process per arrestare tutti i processi/demoni generati come scritto nei file init (nell'ordine inverso in cui sono stati avviati) e infine invocare ilshutdown -r now
comando per riavviare la macchina
Oggi non c'è molta differenza poiché entrambi i comandi fanno esattamente la stessa cosa e rispettano gli script di init usati per avviare servizi/demoni invocando gli script di spegnimento per loro. Ad eccezione di 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:
Ho dimenticato di menzionare che nelle prossime distribuzioni RHEL dovresti usare il nuovo systemctl
comando per emettere poweroff/reboot. Come affermato nelle manpage di reboot
e shutdown
sono "un comando legacy disponibile solo per compatibilità". e il systemctl
sarà l'unico sicuro.
L'arresto è preferibile perché ti consente di specificare il motivo per l'azione drastica -- qualcosa che dovresti sempre fare. Il messaggio verrà registrato nel/i registro/i per i posteri. Ad esempio:
shutdown -r now 'Kernel upgrade requires reboot'
Puoi anche eseguire un programmato reboot -- specificando qualcosa di diverso da now
come ora di riavvio:
shutdown -r 22:00 'Work around kernel memory leak'
Quindi i tuoi utenti riceveranno promemoria periodici per uscire con l'avvicinarsi del momento:il processo sarà più ordinato e professionale.
Sugli uni tradizionali, reboot
e shutdown -r now
sono comandi molto diversi. Nell'uso tipico, reboot
è sicuro solo da usare in modalità utente singolo.
shutdown -r now
è il metodo canonico per l'arresto su diversi *nix ed è più sicuro da usare in generale ed è funzionalmente equivalente a init 6
.
init(8)reboot(8)