Когда у меня вроде как отлаженный скрипт не запускался из rc.local или по крону, то часто проблемой были
1. $PATH отличный от того с которым тестировался скрипт
2. Другие переменные окружения могут отличаться, что может приводить к неработоспособности
3. Использование относительных путей в мкрипте вместо абсолютных. При этом скрипт не находит нужных для работы файлов и выпадает