Tente adicionar uma pausa de 10 segundos antes do comando de script. Às vezes o rc.local é executado cedo demais ...
Exemplo:
...
# By default this script does nothing.
sleep 10
python <path-to-my-script> &
exit 0
Adicionei uma linha simples:
python <path-to-my-script> &
para /etc/rc.local, mas notei que, após a migração de um host para o outro, o script às vezes falha.
Estou usando o KVM, as VMs estão no Ubuntu 12.04 de 32 bits. O host tem o Ubuntu 12.04 de 64 bits e estou usando o Live Migration (nuvem privada construída com o Openstack).
Eu não sei se é culpa do KVM / Libvirt ou talvez eu esteja fazendo algo errado no Ubuntu ou talvez seja culpa do software em nuvem?
Poderia ser culpa local? Existe algo que eu deveria saber, quando estou usando rc.local e pode ser uma causa desse comportamento?
Tente adicionar uma pausa de 10 segundos antes do comando de script. Às vezes o rc.local é executado cedo demais ...
Exemplo:
...
# By default this script does nothing.
sleep 10
python <path-to-my-script> &
exit 0
Você deve primeiro verificar se o seu programa não está travando. A maneira mais fácil de fazer isso é redirecionar sua saída para um arquivo e inspecioná-lo posteriormente (sinta-se à vontade para substituir /myprogram.log para outra coisa):
python <path-to-my-script> &>/myprogram.log &
Além disso, verifique se rc.local
tem a seguinte linha no final
exit 0
e é executável. Você pode verificar isso usando ls -la /etc/rc.local
. Deve mostrar algo assim:
ls -la /etc/rc.local
-rwxr-xr-x 1 root root 629 Aug 10 19:41 /etc/rc.local
Se esse não for o caso, você poderá torná-lo executável emitindo sudo chmod +x /etc/rc.local
.