Se um script init.d não terminar, a inicialização normal do sistema será interrompida indefinidamente.
Uma solução comum é incorporar um contador no loop while e sair com uma mensagem de erro após um determinado número de loops while. Se você está esperando por um comando externo que não tem uma opção de tempo limite, dê uma olhada em this question.