GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra reboot , init 6 e shutdown -r now?

Non c'è differenza in loro. Internamente fanno esattamente la stessa cosa:

  • reboot utilizza il shutdown 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 emettendo SIGKILL signal (si trova ancora nelle fonti, può essere invocato con -f opzione), nelle distribuzioni più recenti il ​​valore predefinito è il più grazioso e intuitivo init 1 -> shutdown -r . Ciò garantisce che i demoni si puliscano da soli prima dell'arresto.

  • init 6 dice al init process per arrestare tutti i processi/demoni generati come scritto nei file init (nell'ordine inverso in cui sono stati avviati) e infine invocare il shutdown -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)


Linux
  1. La differenza tra i comandi di arresto e arresto?

  2. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  3. Centos – La differenza tra spegnimento alle 18:00 e spegnimento alle 18:00?

  4. Qual è la differenza tra Git Switch e Checkout?

  5. Qual è la differenza tra strtok_r e strtok_s in C?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra route e ip route?