Comandos de terminal para desligamento e reinicialização

4

Eu quero fazer o hard restart e o hard shutdown (desligamento e reinicialização imediatos) através do terminal.

Isso é possível através de comandos de terminal?

E note que não há respostas neste Como faço para desligar ou reiniciar a partir de um terminal? pergunta faz o desligamento imediato ou reiniciar. Então não é um tolo.

    
por Avinash Raj 03.07.2014 / 10:52

2 respostas

5

Seria mais seguro fazer um Alt + SysRq + ( R , E , I , S , U , B ou O ) que forçar uma reinicialização hard .

  • R Muda o teclado do modo raw para o modo XLATE
  • E SIGTERM tudo exceto init
  • I SIGA tudo exceto init
  • S Sincroniza os sistemas de arquivos montados
  • U Remonta os sistemas de arquivos montados no modo somente leitura
  • B Reinicie o sistema, ou O Desligue o sistema

Você poderia apenas Alt + SysRq + B / O reinicializar / parar se realmente quisesse, mas você colocaria seus sistemas de arquivos em risco ao fazê-lo. Fazer todas as opções acima é relativamente seguro e deve funcionar mesmo quando o resto do sistema estiver quebrado.

Este é essencialmente o mesmo método que você está falando em seus comandos, mas eu não tenho certeza se você poderia fazer o script do E e I (pois eles irão neutralizar o seu acesso ao terminal). Mas você definitivamente poderia manipular o acesso ao disco e reinicializar ou desligar.

for i in s u b; do echo $i | sudo tee /proc/sysrq-trigger; sleep 5; done  # reboot
for i in s u o; do echo $i | sudo tee /proc/sysrq-trigger; sleep 5; done  # halt

Você ainda pode perder dados de aplicativos em execução, mas não precisa melhorar seu sistema de arquivos. Se você tiver caches de gravação de disco particularmente grandes, talvez seja melhor aumentar o valor sleep .

    
por Oli 03.07.2014 / 11:09
4

NOTA : Salve qualquer documento de trabalho antes de executar os comandos abaixo.

Comando de terminal para encerramento automático,

sudo sh -c "echo o > /proc/sysrq-trigger"

Comando de terminal para reinicialização forçada,

sudo sh -c "echo b > /proc/sysrq-trigger"
    
por Avinash Raj 03.07.2014 / 10:52