Il file che hai inserito in /etc/init.d/
deve essere impostato su eseguibile con:
chmod +x /etc/init.d/start_my_app
Come sottolineato da @meetamit, se ancora non funziona potrebbe essere necessario creare un collegamento simbolico al file in /etc/rc.d/
ln -s /etc/init.d/start_my_app /etc/rc.d/
Tieni presente che nelle ultime versioni di Debian, questo non funzionerà in quanto il tuo script dovrà essere conforme a LSB (fornisci almeno le seguenti azioni:start, stop, restart, force-reload e status):https://wiki .debian.org/LSBInitScripts
Come nota, dovresti sempre utilizzare il percorso assoluto dei file nei tuoi script invece di quello relativo, potrebbe risolvere problemi imprevisti:
/var/myscripts/start_my_app
Infine, assicurati di aver incluso lo shebang in cima al file:
#!/bin/sh
Per prima cosa crea il tuo script di avvio @ /home/user/startup.sh e rendilo eseguibile
chmod +x /home/user/startup.sh
Quindi imposta un crontab per questo:
$ crontab -e
@reboot /home/user/startup.sh
Ora il tuo script startup.sh verrà eseguito ad ogni avvio.