Risposte:
Generalmente, si usa il shutdowncomando . Consente un ritardo e un messaggio di avviso prima dell'arresto o del riavvio, che è importante per l'amministrazione del sistema di server shell multiutente; può fornire agli utenti un preavviso dei tempi di fermo.
Pertanto, il comando shutdown deve essere usato in questo modo per arrestare / spegnere immediatamente il computer (almeno su Linux e FreeBSD):
shutdown -h now
O per riavviarlo con un preavviso personalizzato di 30 minuti:
shutdown -r +30 "Planned software upgrades"
Dopo il ritardo, shutdownindica initdi passare al runlevel 0 (arresto) o 6 (riavvio). (Si noti che omettendo -ho facendo -rpassare il sistema in modalità utente singolo (runlevel 1), che uccide la maggior parte dei processi del sistema ma non lo interrompe effettivamente; consente comunque all'amministratore di rimanere connesso come root.)
Una volta che i processi di sistema sono stati interrotti e i filesystem sono stati smontati, il sistema si arresta / si spegne o si riavvia automaticamente. Questo viene fatto usando il comando haltoreboot , che sincronizza le modifiche ai dischi e quindi esegue l'arresto / spegnimento effettivo o il riavvio.
Su Linux, se halto rebootviene eseguito quando il sistema non ha già avviato il processo di spegnimento, invocherà shutdownautomaticamente il comando anziché eseguire direttamente l'azione prevista. Tuttavia, su sistemi come FreeBSD , questi comandi prima registrano l'azione wtmpe quindi eseguono immediatamente l'arresto / riavvio, senza prima aver ucciso i processi o smontare i filesystem.
halt, reboote shutdownprogrammi che richiamano l'un l'altro. C'è un solo programma, con molti parser da riga di comando che si incanalano internamente in un percorso di codice. Né ci sono livelli di esecuzione. Né lo spegnimento va in modalità utente singolo. In effetti, la stessa modalità utente singolo è stata rinominata. Per i dettagli, consultare unix.stackexchange.com/a/196014/5132 .
Nel 1980, i BSD avevano halt, reboote shutdown. System 5 UNIX aveva un set di strumenti di compatibilità BSD. Ma nativamente aveva un suo shutdowncomando diverso ; e non ce l'avevo halto rebootaffatto. (Alcune varianti di System 5 avevano cose come SCO XENIX haltsys.)
Il BSD halte i rebootcomandi erano di basso livello, drastici e immediati. Il modo premuroso di spegnere un sistema BSD era il shutdowncomando, che faceva tutte le cose che ci si aspetta che accadano: wallmessaggi agli utenti, servizi uccisi con grazia, voci di registro scritte, accessi disabilitati e così via.
Mentre i BSD erano in gran parte il luogo in cui la saggezza ricevuta aveva origine che " shutdownexecs halt/ reboot", e che questi ultimi dovevano essere usati con cura; era il mondo di System 5 in cui le persone imparavano l'abitudine contraria che erano halt/ rebooterano solo utili scorciatoie e niente di più: /usr/ucb/haltdal "Pacchetto di compatibilità BSD", non era diverso a tutti gli effetti shutdown -h. Entrambi hanno finito per farlo init 0.
halt. 1982/05/11. 4.2 Manuale diBSD.haltsys. 2005-06-03. Manuale OpenServer SCO.Al giorno d'oggi, abbiamo una gamma di possibili set di strumenti di gestione del sistema. I BSD hanno ancora il loro set di strumenti, sebbene purificato da ogni possibile AT & Tisms negli anni '90. Miquel van Smoorenburg nel 1992 (ri) scrisse un Linux init+ rce i loro strumenti associati, che la gente ora chiama "System 5 init", anche se in realtà non è il software di UNIX System 5 (e non è solo init). Ci sono anche systemd , arrivista , e gustare uno spuntino , ognuno dei quali ha le proprie implementazioni di halt, reboot, fasthalt, fastboot, e così via.
Anche i set di strumenti sono cresciuti e cambiati. Ora c'è un poweroffcomando, non presente nei sistemi operativi degli anni '80 perché le Unità di elaborazione centrale sulla maggior parte delle macchine contemporanee non avevano modo di controllare i loro alimentatori. I set di strumenti Linux in particolare hanno acquisito i comandi BSD; ma come gli strumenti di compatibilità BSD su UNIX System 5, non sono esatti workalikes e le cose sono state ampiamente appiattite.
Questo appiattimento ci ha portato al punto in cui halte per lo piùshutdown sono gli stessi. Ma i dettagli esatti variano da set di strumenti a set di strumenti e la meccanica di ciascun set di strumenti è leggermente diversa.
E ci ha anche portato alla posizione un po 'imbarazzante in cui questo gruppo di comandi è diventato così addobbato con opzioni di compatibilità che ora permette alle persone di dare computer istruzioni contraddittorie come reboot --halte poweroff --reboot, come ho notato nella pagina di manuale per l'gustare uno spuntino halt, fasthalt, reboot, fastboot, e poweroffcomandi. ☺
halt, reboot, poweroff, telinit, E shutdownsono tutto un programma . In realtà è il systemctlprogramma di systemd . Dispone di diversi parser della riga di comando per le varie sintassi della riga di comando di tali comandi, oltre che dei propri, ma in seguito viene in gran parte incanalato in un percorso di codice internamente. Non c'è alcuna differenza tra l'utilizzo halte le sue opzioni di comando per attivare un'azione e l'utilizzo shutdowne le sue opzioni di comando per attivare la stessa azione.
systemd non considera la modalità di salvataggio (che è quella che la gente del sistema ha rinominato la modalità utente singolo ) come uno stato di spegnimento del sistema e non è raggiungibile con nessuno di questi comandi. Opzione-less shutdown nowè uguale a poweroff.
I BSD mantengono in gran parte la loro semantica degli anni '80. halte shutdownquindi non sono molto equivalenti nei loro set di strumenti. halte rebootsono un unico programma; e sono ancora di basso livello, immediati e drastici. Considerando shutdownche poweroff, e anche un singolo programma, fanno tutte le cose premurose come l'arresto programmato, la scrittura di wallmessaggi, le azioni di registrazione, la disabilitazione dell'accesso e così via.
Nei set di strumenti BSD, shutdown/ powerofftradizionalmente finiva per invocare halt/ rebootper attuare il cambiamento finale dello stato del sistema. Il (spesso al giorno d'oggi errato) ha ricevuto la saggezza che " shutdownexecs halt/ reboot" in effetti continua su NetBSD e OpenBSD. Ma su FreeBSD / TrueOS / DragonFlyBSD è solo il caso se -osi utilizza l' opzione. Su questi sistemi BSD, entrambi di questi programmi normalmente emanare il cambiamento di stato del sistema finale con l'invio di vari segnali ( INT, USR1, e USR2) per elaborare 1 #. initesegue tutta la gestione dello stato del sistema su questi sistemi.
Su tutti loro, l'opzione-meno shutdown nownon è equivalente a qualsiasi halt, rebooto poweroff. Passa alla modalità utente singolo BSD , da cui è possibile tornare alla modalità multiutente .
shutdown. Manuale del gestore di sistema . Pagine del manuale di NetBSD. 2011-11-04.reboot,halt . Pagine del manuale di OpenBSD. 2016/09/03.shutdown. Pagine del manuale di FreeBSD. 2016/09/21.reboot, halt, fastboot,fasthalt . Pagine del manuale di FreeBSD. 2017/03/19.shutdown. Manuale del gestore di sistema . Pagine del manuale di DragonFlyBSD. 2016/09/29.reboot, halt, fastboot,fasthalt . Manuale del gestore di sistema . Pagine del manuale di DragonFlyBSD. 2016/09/29.Nella gestione del sistema toolset gustare uno spuntino, halt, fasthalt, poweroff, fastpoweroff, reboot, e fastbootsono tutti un unico programma. È uno spessore di retrocompatibilità che normalmente si concatena shutdown, l' opposto della saggezza ricevuta. L' --forceopzione rende invece la catena system-control.
Quindi non c'è alcuna differenza (assente --force) tra il haltcomando e il shutdowncomando (con l'opzione equivalente) in questo set di strumenti, poiché questa serie di comandi "Compatibilità BSD / System 5" è semplicemente un sottile strato di spessore sopra la parte superiore di shutdown.
shutdown. pagine di manuale di nosh toolset. Software.telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, … pagine di manuale di nosh toolset. Software.Come con nosh, nel set di strumenti di gestione del sistema upstart si applica l'opposto della saggezza BSD ricevuta. halt, reboote poweroffsono tutti un programma, che normalmente si concatena shutdown; a meno che non --forcevenga utilizzata l' opzione, il che la rende reboot()chiamata al sistema stessa.
Quindi, ancora una volta, non c'è alcuna differenza (assente --force) tra il haltcomando e il shutdowncomando (con l'opzione equivalente) in questo set di strumenti. Anche in questo caso, l'opzione-less shutdown now(che nessuno dei due halt, rebooto poweroffpuò finire per invocare mentre impostano tutte le opzioni) porta il sistema in modalità utente singolo invece di spegnerlo.
shutdown(8) . Pagine del manuale di Ubuntu.reboot(8), halt(8), poweroff(8) . Pagine del manuale di Ubuntu.init+rcAnche in questo set di strumenti il contrario di saggezza BSD ricevuto applica ed halte rebootsemplicemente catena shutdown- a meno che il sistema è già in spegnimento o arresto "run-livelli", nel qual caso questi comandi effettivamente mettono in scena il cambiamento di stato del sistema finale. shutdowna sua volta incatena a init.
Quindi, di nuovo, non c'è differenza (a meno che il sistema non sia già in gran parte spento) tra halte shutdownperché il primo invoca solo il secondo. E sì, ancora una volta, l'opzione-less shutdown now(che nessuno di halt, rebooto poweroffpuò finire invocando in quanto tutte le opzioni di set) porta il sistema in modalità utente singolo , piuttosto che chiuderlo.
Sospetto che ciò dipenda in qualche modo dalla versione di UNIX / Linux che stai utilizzando. Su Centos (e mi aspetto che altri Linux moderni) arrestino l'arresto delle chiamate (a condizione che tu non sia al runlevel 0 o 6), quindi il tuo sistema verrà spento in modo pulito. Su Solaris 10 l'arresto è più brutale, svuota semplicemente le cache del disco e spegne il sistema - non viene fatto alcun tentativo di eseguire script o arrestare le strutture smf .
Per coloro che usano AWS EC2: su AWS shutdown arresta un'istanza, quando la halt termina .
In Linux, "halt" e "reboot" sono alias del comando shutdown - shutdown -he shutdown -rrispettivamente. L'arresto di Bareword presuppone generalmente -h.
aliasesnel senso di alias di shell, ma sì, haltfondamentalmente solo chiama shutdown -he rebootcorre shutdown -r. Notare che se si passa l' -fopzione (force) a halto reboot, nonshutdown viene chiamata.
sendmailA questo punto li equiparerei, per esempio, al comando - Come con gli MTA, in realtà non importa quale sistema init usi perché tutti riconosceranno entrambi shutdowne haltcome tali.
sendmailcomando. È come il sendmailcomando, ma non nel modo in cui pensi.