Qual è la differenza tra halt
e shutdown
comandi?
Risposta accettata:
Generalmente, si usa lo shutdown
comando. Consente un ritardo e un messaggio di avviso prima dell'arresto o del riavvio, che è importante per l'amministrazione del sistema dei server shell multiutente; può fornire agli utenti un preavviso del tempo di inattività.
Pertanto, il comando shutdown deve essere utilizzato in questo modo per arrestare/spegnere immediatamente il computer (almeno su Linux e FreeBSD):
shutdown -h now
O per riavviarlo con un avviso personalizzato di 30 minuti di anticipo:
shutdown -r +30 "Planned software upgrades"
Dopo il ritardo, shutdown
dice a init
per passare al runlevel 0 (arresto) o 6 (riavvio). (Nota che omettendo -h
o -r
farà sì che il sistema entri in modalità utente singolo (runlevel 1), che uccide la maggior parte dei processi di sistema ma non arresta effettivamente il sistema; consente comunque all'amministratore di rimanere connesso come root.)
Una volta che i processi di sistema sono stati uccisi e i filesystem sono stati smontati, il sistema si arresta/si spegne o si riavvia automaticamente. Questo viene fatto usando halt
o reboot
comando, che sincronizza le modifiche sui dischi e quindi esegue l'arresto/spegnimento o il riavvio effettivi.
Su Linux, se halt
o reboot
viene eseguito quando il sistema non ha già avviato il processo di spegnimento, invocherà lo shutdown
comando automaticamente anziché eseguire direttamente l'azione prevista. Tuttavia, su sistemi come FreeBSD, questi comandi registrano prima l'azione in wtmp
e poi immediatamente eseguire l'arresto/riavvio da soli, senza prima terminare i processi o smontare i filesystem.