Non c'è differenza in loro. Internamente fanno esattamente la stessa cosa:
-
rebootutilizza ilshutdowncomando (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 emettendoSIGKILLsignal (si trova ancora nelle fonti, può essere invocato con-fopzione), 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 6dice alinitprocess 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 nowcomando 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)