As linhas de rc.local
não são executadas em paralelo. Ele será executado na mesma ordem que qualquer outro script bash.
Não adivinhe por que P2
não foi executado, descubra com certeza registrando sua saída. Por exemplo:
P1 > /tmp/P1.startup 2>&1
P2 > /tmp/P2.startup 2>&1
Se P1
tiver que ser concluído com êxito antes que P2
seja executado, você precisará definir uma declaração if true. Um deles funcionará:
P1 && \
P2
Ou
P1
test $? -eq 0 && P2
Ou
P1
if [[ $? == 0 ]]
then
P2
fi