Como desligar ou reiniciar corretamente um servidor Unix / Linux

11

Qual é a maneira correta de desligar um servidor Unix / Linux?

Com o meu Google, aprendi (espero) o seguinte:

shutdown : devo usar isso, com o parâmetro -h para interromper ou o parâmetro -r para reiniciar

parar : interrompe o computador (para o processador? isso desliga fisicamente a energia do computador?). Eu acho que isso vai chamar de desligamento, se não no init0, caso contrário, apenas pára.

reboot : se não estiver no init6, chama o desligamento; caso contrário, apenas reinicia o computador.

se tudo estiver correto, a única coisa que não consigo descobrir é o que exatamente 'parar' faz. Apenas interrompe o processador, mas não desliga o computador fisicamente? Como faço para "desligar" o computador?

obrigado

Tony Stark
fonte

Respostas:

13

shutdown -h nowdesligará o computador com a maioria dos sistemas, mas ficará por conta da implementação. Use -Ppara desligar com certeza e -Hparar com certeza. Este é o método que eu recomendaria para desligar o sistema. Ele executará todos os scripts adequados.

haltsem -fapenas chamará o desligamento acima e também o serão reboot, basicamente são apenas aliases.

Kyle Brandt
fonte
Eu sou um grande fã de / sbin / shutdown -h (-r) agora. usando "parar" sempre me assustou.
RateControl
1
Thoreau faz outro bom ponto: você deve criar o hábito de chamar comandos importantes do sistema com um caminho explícito (por exemplo, / sbin / shutdown). Isso pode economizar se seu sistema estiver comprometido e você não estiver ciente disso.
21740 Ryan Fisher3 de
1
mystikphish: Concordo, vou adotar esse hábito. Embora ele tenha um bom argumento, não sei se confiaria nos conselhos dele sobre TI em geral, se ele passar o tempo todo em uma cabine de um cômodo sem eletricidade.
Kyle Brandt
Seria um mau compromisso se não mudar o executável no caminho que está enraizado em seus dedos embora ...
asjo
@ Kyle Brandt, legal.
23411 Joseph Kern
3

No Linux, eu sempre usei reboote halt, embora também conheça pessoas que acham haltassustadoras. halt(8)meio que diz o porquê:

Em versões mais antigas do sysvinit, reinicialização e parada nunca devem ser chamadas diretamente. A partir da liberação 2.74 na parada e reinicialização, invoque shutdown (8) se o sistema não estiver no nível de execução 0 ou 6. Isso significa que se a interrupção ou reinicialização não puder descobrir o nível de execução atual (por exemplo, quando / var / run / utmp não tiver inicializado corretamente) o desligamento será chamado, o que pode não ser o que você deseja. Use o sinalizador -f se desejar fazer uma parada forçada ou reiniciar.

O sysvinit 2.74 é datado de 17 de março de 1998 às 21:53. :)

Em relação à sua pergunta sobre como desligar, você pode usar poweroffou halt -p. Os sistemas Linux mais recentes parecem desligar apenas haltou shutdown -htambém.

Marie Fischer
fonte
Solaris ainda está na multidão onde 'parar' faz coisas assustadoras.
214 Karl Karlzzzz
3

Eu uso halt- menos parâmetros para lembrar.

Alguém desenvolveu um Molly Guard virtual para garantir que não pare o servidor errado por acidente. Isso me salvou em algumas ocasiões. Está empacotado no molly-guardUbuntu.

Morten Siebuhr
fonte
1
No caso de alguém se pergunta como Molly-guarda funciona, aqui está um exemplo: guillaume.segu.in/blog/home/118/...
Marie Fischer
1

Eu geralmente uso (como o usuário root, é claro):

 init 0

para colocar o sistema no estado desligado. Isso executa scripts de resumo.

 init 6

derrubar o sistema e reiniciá-lo automaticamente. Isso também executa scripts de resumo.

mdpc
fonte
1
O halt também executaria todos os initscripts com o parâmetro "stop".
hayalci
1
Em que sistema não pára bem?
asjo 3/08/09
2
Com base nos dois comentários acima, editei minha nota para remover meu comentário final. No entanto, verifiquei no FreeBSD 7.2, e o Solaris 10 5/2009 x86, executando o comando simple halt nesses dois sistemas, NÃO ativará a sequência de resumo padrão. No entanto, no CentOS 5.3, openSUSE 11.1 e Fedora 11 o comando halt se envolve a seqüência resumo padrão e atua basicamente como o init 0. FYI ....
MDPC
0

Vale a pena notar aqui:

O Solaris precisa "shutdown -y -i5 -g0" para desligar ou "shutdown -y -i6 -g0" para reiniciar. Parar ou reiniciar no Solaris deve ser usado apenas quando for aceitável não emitir um aviso ou período de carência antes de você começar a desligar as coisas ... isso pode causar estragos nos sistemas de disco se você não os desmontar antes de desligar, y 'conhecer?

É melhor adotar procedimentos que sejam melhores para os sistemas operacionais em que você toca diariamente, para não estragar acidentalmente algo ruim às 2 da manhã com os dedos no piloto automático.

Por exemplo, nunca digite 'killall' no solaris, enquanto esse é um comando bastante comum no linux. 'pkill' funciona da mesma forma em ambos.

Karl Katzke
fonte
0

Para desligá-lo imediatamente, digite:

shutdown -h now 

e para desligá-lo imediatamente e reiniciar o tipo:

shutdown -r now
user3571127
fonte
1
Acho que essa é a melhor resposta, não sei por que a votação diminuiu.
Basil A