Pode haver muitas razões e não sabemos o que seu script está fazendo. O que eu faria é adicionar alguns registros para descobrir o que está acontecendo.
Veja, por exemplo: Onde está o arquivo de log de rc.local?
A outra abordagem (que eu prefiro) é usar o comando de tela para iniciar o processo em sua sessão de terminal própria.
Pré-requisito:
apt-get install screen
Então você pode adicionar algo assim ao seu arquivo local.rc
/usr/bin/screen -dmS autostart bash -c '/home/ubuntu/Desktop/camset.sh'
Para manter um registro do console de tela, crie também um arquivo /root/.screenrc assim:
deflog on
logfile /tmp/screenlog_$USER_.%H.%n.%Y%m%d-%0c:%s.%t.log
Após a reinicialização, você pode verificar o arquivo de log (neste exemplo, ele é armazenado em / tmp).
PS: você pode ter que adicionar um "e" comercial (&) após o seu script se ele não retornar, isso pode impedir que o computador inicialize.
Note que rc.local será executado como root.