[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] bash e reboot...
From: |
Eliphas Levy Theodoro |
Subject: |
Re: [shell-script] bash e reboot... |
Date: |
Fri, 03 Feb 2006 18:05:17 -0200 |
User-agent: |
Thunderbird 1.5 (Windows/20051201) |
Mauricio escreveu:
Ontem aconteceu uma situaćão aqui na empresa curiosa. Uma das máquinas do nosso datacenter perdeu o filesystem e não rodava nenhum
executável. A questão era como dar o reboot na máquina estando como root e usando somente o bash (e seus comandos internos) e a conexão
ssh... alguém teria uma sugestão?
Bom, ligamos para o condomínio e eles rebotaram a máquina para nós. Mas ficou o desafio... alguém teria uma idéia? Pensei em colocar o
código de um executável tipo o halt numa variável e depois executá-lo. Isso funcionaria???
Bom, se não me engano o bash tem um kill "builtin"; como o init tem
sempre o PID 1, então acho que rolaria algo como:
kill -SIGINT 1
De acordo com a manpage do init, o SIGINT executa como o "ctrlaltdel" do
inittab.
*PORÉM*... o ctrlaltdel executa o /sbin/shutdown, e se ele não está mais
acessível...
Bem, se ele deixar de executar o shutdown e ir adiante, matando os
processos e avisando o kernel que ele pode reiniciar, beleza.
Se não...De volta à prancheta. Alguém quer tentar esse?
Bom, acho que um:
cd /proc; for i in [0-9]*; do [ "$i" == "$$" -o ] || kill -SIGINT $i; done
Ou seja, vai no /proc (já que não temos /bin/ps), e pra cada processo
rodando, tenta dar um SIGINT nele. Nesse caso, pelo menos os aplicativos
que já estão rodando vão morrer. Hmm mas se o init não reiniciar como no
caso anterior, isso também não vai reiniciar a máquina, e você vai
acabar com um sistema totalmente sem processos rodando... De volta à
prancheta de novo.
... Hmm, não sei. Definitivamente, o init não vai me ajudar.
Acho que o esquema é mandar pro kernel um "magic sysrequest", aquela
combinação de teclas emergencial que o kernel recebe pra desmontar os
sistemas de arquivos, reiniciar, desligar... Você poderia alterar o INIT
pra mandar uma mensagem dessas pro kernel...
(/me procura por kernel sysrq)
IP Tables network magic SysRq function -
http://marek.terminus.sk/prog/ipt_sysrq.shtml
Esse cara pensou nisso antes, e a solução é melhor ';) Não precisa nem
do SSH estar rodando. Hmm acho que vou botar nuns servidores que ficam
nos morros por aqui.
Quem quer experimentar? ':D
HTH,
--
Eliphas
- Re: RES: [shell-script] Limites..., (continued)
- bash e reboot..., Mauricio, 2006/02/03
- Re: [shell-script] bash e reboot..., Murilo Opsfelder Araújo, 2006/02/03
- Re: [shell-script] bash e reboot..., Bruno Gola, 2006/02/03
- Re: [shell-script] bash e reboot..., Gentil de Bortoli Júnior, 2006/02/03
- Re: [shell-script] bash e reboot..., Mauricio, 2006/02/03
- Re: [shell-script] bash e reboot..., Gentil de Bortoli Júnior, 2006/02/03
- Re: [shell-script] bash e reboot...,
Eliphas Levy Theodoro <=
- Re: RES: [shell-script] Limites..., Mauricio, 2006/02/02