Parece que cron resolveria o que você está tentando fazer.
O formato geral de um crontab é semelhante a este, com cada coluna representando o minuto, hora, dia do mês, mês e dia da semana, respectivamente.
30 * * * * /home/user/updates.sh
O Cron também suporta algumas entradas predefinidas, como @weekly , @daily e, entre elas, @reboot .
Você pode editar o crontab enquanto estiver conectado ao usuário do qual deseja executar o script usando crontab -e ou como root crontab -u username -e para editar o crontab de outro usuário.
Depois de abrir o editor, adicione:
@reboot /usr/bin/myapp > /dev/null 2>&1
Na próxima vez que você reinicializar a máquina, /usr/bin/myapp será executado pelo usuário cujo crontab você colocou.