De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Reiniciando um servidor Linux a partir do diretório /proc.

Colaboração: Jansen Sena

Data de Publicação: 12 de Março de 2009

Dia desses, procurando por informações a respeito de métodos de reinicialização de um servidor para casos de emergência, encontrei um pequeno e interessante artigo publicado no site da Linux Journal, a respeito de uma maneira simples, entretanto, útil, de reiniciar um sistema GNU/Linux a partir do diretório /proc. Reproduzo, então, alguns comentários a respeito desse que pode ser um interessante recurso para um sysadmin GNU/Linux guardar nas mangas!

Mas, primeiramente, pra que reiniciar um sistema por meio do diretório /proc? Bem, suponha que você precise reiniciar um servidor e ao executar o tradicional comando reboot, você receba a seguinte mensagem:

  root@scadufax:~# reboot
  bash: /sbin/reboot: Input/output error

Sem dar muita atenção pra mensagem de erro, sua próxima alternativa é utilizar o comando shutdown:

  root@scadufax:~# shutdown -r now
  bash: /sbin/reboot: Input/output error

Ainda sem procurar investigar em detalhes o problema, ainda lhe resta uma última alternativa por meio do comando init. Mas não adianta: você recebe a mesma mensagem:

  root@scadufax:~# init 6
  bash: /sbin/reboot: Input/output error

O que está acontecendo? Bem, o reboot, como vários outros utilitários de um sistema GNU/Linux, fica no sistema de arquivos que pode, por sua vez, em decorrência de problemas de hardware, por exemplo, apresentar problemas. Com isso, o kernel não consegue recuperar o conteúdo desses comandos para poder executá-los.

Antes de partir para o desespero e tentar um "hard" reboot, pressionando o botão de energia de seu servidor, existe uma chance que consiste em utilizar o Magic SysRQ Key, habilitado através da configuração da variável CONFIG_MAGIC_SYSRQ no momento da compilação do kernel de seu sistema. Felizmente, para a maioria daqueles que não possuem tanta intimidade com o processo de compilação do núcleo do sistema, esse opção já vem habilitada no kernel padrão da grande maioria das distribuições GNU/Linux.

O Magic SysRQ Key permite que sejam enviados comandos diretamente para o kernel por meio do sistema virtual de arquivos /proc. O primeiro passo para utilizá-lo, entretanto, consiste em certificar-se de que esse recurso encontra-se compilado em seu kernel. Para isso, basta consultar o arquivo que guarda as opções de compilação do seu kernel corrente para verificar se a opção CONFIG_MAGIC_SYSRQ foi utilizada, conforme o exemplo mostrado a seguir:

  root@scadufax:~# grep CONFIG_MAGIC_SYSRQ /boot/config-2.6.24-19-generic
  CONFIG_MAGIC_SYSRQ=y

Caso o recurso esteja presente, o próximo passo é habilitar o recurso para que o kernel esteja apto a receber comandos por meio do Magic SysRQ Key:

  root@scadufax:~# echo 1 > /proc/sys/kernel/sysrq

Enfim, para reiniciar o seu sistema, o próximo passo consiste simplesmente em encaminhar o caracter b para o arquivo /proc/sysrq-trigger:

  root@scadufax:~# echo "b" > /proc/sysrq-trigger

Simples, não?

Em breve, publicarei mais alguns "truques" do /proc/sysrq-trigger?

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Jansen Sena