O desligamento vai para o modo ininterrupto de suspensão após o envio da mensagem de parede

2

Eu tenho um servidor que estou administrando remotamente por SSH, por vários motivos, ele precisa ser reiniciado. No entanto, quando tento fazer isso, shutdown entra em modo ininterrupto de suspensão quase imediatamente depois de enviar a mensagem na parede.

$ ps aux | grep 'shutdown'
root      4754  0.0  0.1   1888   720 ?        D    07:26   0:00 shutdown -r 0 w

Não tenho acesso físico à máquina no momento atual. O que devo fazer? O servidor ainda está respondendo e ainda consigo fazer login.

    
por Matthieu Cartier 05.08.2011 / 08:46

4 respostas

3

O estado D não está "morto", está bloqueado esperando no disco IO.

Algo como "reboot -n -f" é mais strong e pode funcionar. Você está tendo problemas no sistema de arquivos? O comando shutdown escreve uma entrada wtmp antes de informar ao init para desligar.

    
por 05.08.2011 / 09:01
4

Ativar a chave do Magic SysRq com:

echo "1" > /proc/sys/kernel/sysrq

e faça a reinicialização limpa com as seguintes etapas:

  1. Alt + SysRq + e
  2. Alt + SysRq + u
  3. Alt + SysRq + i
  4. Alt + SysRq + b
por 05.08.2011 / 09:22
1

shutdown provavelmente está esperando para escrever algo como /dev/initctl - use strace -p 4754 para ver onde está pendurado e corrija o que estiver quebrado.

    
por 05.08.2011 / 08:51
1

Eu vi o desligamento interrompido se houver montagens NFS (obsoletas) ou se o servidor estiver conectado à SAN. Aqui está uma lista de verificação para você:

  • Você ainda pode ver todas as montagens de disco com df -h (ou acessar as montagens?)
  • Existem outros processos além de shutdown em D state?
  • O dmesg retorna alguma coisa sobre E / S ou há até mesmo um pequeno pânico do kernel esperando por você?
  • Se houver processos usando alguma montagem SAN / NFS, você poderá parar esses processos manualmente, verificar com lsof que nenhum arquivo está aberto nessa montagem e, em seguida, umount que são montados?
  • Se btrace estiver instalado, btrace /your/disk retornará algo?

Se tudo o mais falhar, a estrofe SysRq fornecida pelo @quanta deve funcionar, MAS primeiro certifique-se de que alguém possa fisicamente tomar conta do servidor se, por algum motivo, ele não inicializar corretamente.

    
por 05.08.2011 / 09:27