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 --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [EMAIL PROTECTED] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
