Existem várias maneiras de conseguir isso PM2 Você pode usar o PM2, que fornece a você a criação de um script de inicialização para reinicializações esperadas ou inesperadas da máquina.
Docker Eu prefiro criar o Dockerfile e executá-lo com --restart = always tag
Se você quiser continuar com seu script de shell Então use o crontab do unix É muito fácil de usar & você pode configurar em minutos
-
Edite o crontab executando o seguinte, substituindo o "USER" pelo usuário do tempo de execução desejado para o processo do nó. Se você escolher um usuário diferente de si mesmo, você terá que executar isso com o sudo.
$ crontab -u USER -e
-
Uma vez no editor, adicione a seguinte linha:
@reboot / usr / local / bin / para sempre iniciar /your/path/to/your/index.js else
@reboot sh /your/path/to/your/startApp.sh
-
Salvar e & confirmar arquivo é salvo pelo comando de verificação de # 1 novamente
Nota: Na minha opinião, você deve usar o caminho completo no arquivo crontab para evitar problemas
Você pode consultar essa referência de URL How to Cron do Ubuntu