A razão principal é porque, por sua natureza, é sequencial.
O que você precisa entender é que /etc/rc.local
existe para compatibilidade com o antigo sistema init SysV para a criação de serviços, e o SysV começou originalmente como um sistema sequencial nos bons tempos do AT & T Unix. Como o caos explica em sua resposta :
O segundo motivo é que rc.local
em si é um script (notou a #!/bin/sh -e
line?). Os scripts por natureza também são sequenciais, portanto, se um comando não tiver sido finalizado ou não tiver sido colocado em segundo plano - o script terá que esperar que o programa A execute seu mumbo jumbo ou falhe completamente antes que qualquer outra coisa possa acontecer. Além disso, observe os comentários no topo do arquivo:
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
Portanto, seu sslocal -c /home/kinka/azure.conf
simplesmente mantém o refém do sistema e não permite que o script saia e conclua a inicialização do sistema. Isso é tudo.