Diferença no comportamento de reinicialização

1

Eu tenho 2 máquinas rodando linux.

Em uma máquina, o comando reboot é um executável normalmente encontrado em todas as distribuições do Linux.

Na segunda máquina, o comando reboot é um script de shell customizado usando alguns outros comandos da ferramenta de hardware para reinicializar o sistema.

Uma diferença de comportamento entre as duas máquinas é que, quando executo o comando reboot na primeira máquina, ele mostra outro prompt de shell e, em seguida, reinicializa.

Mas, no caso da segunda máquina, ela é reinicializada sem mostrar um prompt de shell. Espero que a segunda máquina se comporte da mesma maneira que a primeira máquina quando o comando de reinicialização é dado.

Atualmente estou analisando o código-fonte de shutdown.c e halt.c normalmente encontrado nas distribuições linux, para que eu possa descobrir a implementação que produz o shell propmt na reinicialização e usar isso no shell script na segunda máquina.

Por favor, me dê algumas dicas sobre onde devo começar a procurar a implementação.

Obrigado

    
por LinuxPenseur 11.01.2011 / 10:24

4 respostas

1

Use shutdown -r . Ele é usado historicamente em vários unices, por isso acredito que sua interface e comportamento são mais conhecidos e previsíveis.

    
por 11.01.2011 / 10:33
1

Meu palpite é que o programa se duplica em segundo plano.

    
por 11.01.2011 / 22:41
1

Eu espero que o programa que retorna você ao prompt não esteja realmente fazendo nada, mas sim comunicando-se com seu daemon de inicialização (sysvinit ou upstart ou o que estiver rodando como processo 1) e pedindo para desligar o sistema. O outro script é apenas um script normal.

    
por 11.01.2011 / 23:06
0

O kernel do Linux é o que emite os syscalls finais para reinicializar a máquina, não a área de usuário. Provavelmente, o kernel usa internamente o IPMI para reinicializar a máquina. Os sistemas têm diferentes abordagens para desligar e reinicializar. Eu encontrei alguns que exigem que você chute um pino no RTC para reiniciar o sistema, e é exatamente isso que o kernel faz para aquela máquina.

Qual é a arquitetura da máquina? ARM, MIPS, outro? WindRiver é o desenvolvedor por trás do VxWorks, se não me engano. Você provavelmente pode ligar para o pessoal de suporte e ver se ele também pode ajudar você.

    
por 13.01.2011 / 04:24