Temos uma placa customizada baseada em preto Beaglebone com 256MB de RAM e eMMC de 4GB.
Nós atualizamos do Linux-3.12 para o Linux-4.4 e do busybox-1.20.2 para o busybox-1.26.2.
Agora em busybox-1.26.2 estamos vendo e emitimos o que não estava lá em busybox-1.20.2
Eu adicionei o seguinte código no último script de init.
if [ -f /home/ankur ] ; then
count=50
rm /home/ankur
echo "----Check Whoami----"
whoami #prints root
reboot
echo "--------------------"
while [ true ]
do
count=$((count - 1 ))
echo "Count = $count"
if [ $count -le 0 ];then
break;
fi
echo "Sleep 1"
sleep 1
done
fi
Eu toquei no arquivo em /home/ankur
e reiniciei o quadro.
O que eu observei é que o sistema não foi reinicializado, mas o contador caiu para 0 e, em seguida, outro script de inicialização foi executado e a placa foi reinicializada.
Portanto, parece que o busybox está recebendo sinal para reboot
, mas manipulando apenas depois que os scripts init foram executados.
Agora, minha pergunta, existe uma maneira de reboot
da placa antes da conclusão de todos os scripts de inicialização. Existe alguma configuração do busybox que irá desativar este bloqueio de reinicialização?
reboot -f
(forçar a reinicialização sem passar pelo init) funciona, mas precisamos executar o script de parada também para que não seja possível usá-lo.