Я бы посоветовал поместить ваш скрипт в /etc/init.d и поместить символическую ссылку на него в /etc/rc5.d и убедиться, что скрипт является chmod +x. Это должно запускать ваш скрипт в то время, когда доступны те же вещи, что и на терминале, когда он уже загружен. Таким образом, он больше не должен выдавать ошибок.
Ссылка:Уровни запуска в Linux