Tuve una situación similar, pero debido a otras restricciones irrazonables, no pude usar crontab. De hecho, tuve la pantalla de llamada inittab. (reemplazó algunos nombres por información oscura):
XXX:5:respawn:/bin/su - useraccount -c "screen -D -m -c /home/xxxxxx/file.screenrc"
En 'file.screenrc' es donde configuro algunas opciones:
sessionname obscuresessionname
multiuser on
cd
screen /home/xxxxxxx/programtostart
De esta manera, comenzó en el arranque, y si el programa se apagaba o la pantalla se cerraba, volvería a aparecer. Puede que no se haya considerado convencional, pero tuve que trabajar en torno a algunos requisitos ambientales extraños. Sin embargo, si necesitáramos eliminarlo, tendríamos que comentar esa línea y finalizar la sesión. Luego, cuando esté listo para recuperarlo, descomente e inicie q.