Come arrestare o riavviare correttamente un server Unix / Linux


11

Qual è il modo corretto di spegnere un server Unix / Linux?

Dal mio google, ho imparato (si spera) quanto segue:

shutdown : dovrei usare questo, con il parametro -h per fermare, o il parametro -r per riavviare

halt : arresta il computer (arresta il processore? questo spegne fisicamente il computer?). Penso che questo chiamerà shutdown se non su init0, altrimenti si ferma.

riavvio : se non su init6, chiama lo spegnimento, altrimenti riavvia il computer.

se tutto ciò è corretto, l'unica cosa che non riesco a capire è cosa fa esattamente "fermare". Arresta semplicemente il processore ma non spegne fisicamente il computer? Come posso "spegnere" il computer?

Grazie

Risposte:


13

shutdown -h nowspegnerà il computer con la maggior parte dei sistemi, ma è lasciato all'implementazione. Usare -Pper spegnere di sicuro e -Hfermarsi di sicuro. Questo è il metodo che consiglierei di spegnere il sistema. Eseguirà tutti gli script corretti.

haltsenza -fchiamerà semplicemente l'arresto di cui sopra e così sarà reboot, sostanzialmente sono solo alias.


Sono un grande fan di / sbin / shutdown -h (-r) ora. usare "halt" mi ha sempre spaventato.
RateControl

1
Thoreau fa un altro aspetto positivo: dovresti provare a prendere l'abitudine di chiamare importanti comandi di sistema con un percorso esplicito, (ad esempio / sbin / shutdown). Questo potrebbe salvarti se il tuo sistema viene mai compromesso e non ne sei consapevole.
Ryan Fisher,

1
mystikphish: d'accordo, andando ad adottare quell'abitudine. Sebbene abbia un buon punto, non so se mi fiderei dei suoi consigli sull'IT in generale se trascorre tutto il suo tempo in una cabina di una stanza senza elettricità.
Kyle Brandt,

Sarebbe un misero compromesso se non cambiasse l'eseguibile nel percorso che è inciso nelle tue dita ...
asjo,

@Kyle Brandt, carino.
Joseph Kern,

3

Su Linux, ho sempre usato reboote halt, anche se conosco anche persone che trovano haltpaura. halt(8)in qualche modo dice perché:

Nelle versioni precedenti di sysvinit, il riavvio e l'arresto non dovrebbero mai essere chiamati direttamente. Dalla versione 2.74 su halt e reboot invocare shutdown (8) se il sistema non è in runlevel 0 o 6. Ciò significa che se halt o reboot non sono in grado di scoprire il runlevel corrente (ad esempio, quando / var / run / utmp non ha è stato inizializzato correttamente) verrà chiamato l'arresto, che potrebbe non essere quello desiderato. Usa il flag -f se vuoi fermarti o riavviare.

sysvinit 2.74 è datato 17-mar-1998 21:53. :)

Per quanto riguarda la domanda su come spegnere, è possibile utilizzare poweroffo halt -p. I sistemi Linux più recenti sembrano spegnersi solo halto shutdown -hanche.


Solaris è ancora tra la folla dove "fermare" fa cose spaventose.
Karl Katzke,


1

In genere uso (come utente root ovviamente):

 init 0

per portare il sistema in uno stato di spegnimento. Questo esegue script di rundown.

 init 6

per arrestare il sistema e riavviarlo automaticamente. Questo esegue anche script di rundown.


1
halt eseguirà anche tutti gli initscript con il parametro "stop".
hayalci,

1
Su quale sistema l'arresto non si arresta correttamente?
asjo,

2
Sulla base dei due commenti precedenti ho modificato la mia nota per rimuovere il mio commento di arresto. Comunque, ho verificato su FreeBSD 7.2, e Solaris 10 5/2009 x86 eseguendo il semplice comando halt su questi due sistemi NON attiverà la sequenza di rundown standard. Tuttavia, su Centos 5.3, OpenSUSe 11.1 e Fedora 11 il comando halt ATTENDE la sequenza di rundown standard e agisce sostanzialmente come init 0. FYI ....
mdpc

0

Vale la pena notare qui:

Solaris ha bisogno di "shutdown -y -i5 -g0" per chiudere, o "shutdown -y -i6 -g0" per riavviare. Arrestare o riavviare su Solaris dovrebbe essere usato solo quando è accettabile non dare un avvertimento o un periodo di tolleranza prima di iniziare a spegnere le cose ... questo può in qualche modo rovinare i sistemi a disco se non si smonta prima di spegnere, y 'conoscere?

È meglio adottare le procedure migliori per i sistemi operativi che tocchi quotidianamente, in modo da non rovinare accidentalmente qualcosa alle 2 del mattino con le dita sull'autopilota.

Ad esempio, non digitare mai 'killall' in solaris, mentre questo è un comando abbastanza comune in Linux. 'pkill' funziona allo stesso modo su entrambi, però.


0

Per spegnerlo immediatamente, digitare:

shutdown -h now 

e per spegnerlo immediatamente e riavviare digitare:

shutdown -r now

1
Trovo che questa sia la risposta migliore, non sono sicuro del perché sia ​​stato votato verso il basso.
Basilio A
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.