Como ativar o PM2 para iniciar automaticamente o aplicativo Node.js na inicialização do sistema
PM2 é um gerenciador de processos poderoso, amplamente utilizado, rico em recursos e pronto para produção para Node.js. Reiniciar o PM2 com os processos que ele gerencia sempre que o servidor inicializa/reinicia é fundamental. Um dos principais recursos do PM2 é o suporte para um script de inicialização (gerado dinamicamente com base no sistema init padrão do seu servidor), que reinicia o PM2 e seus processos a cada reinicialização do servidor.
O script inicial configura o PM2 como um serviço no sistema init. Quando o servidor for reiniciado, ele reiniciará automaticamente o PM2, que então reiniciará todos os aplicativos/processos Node.js que está gerenciando.
Neste artigo, mostraremos como implantar o PM2 como um serviço para gerenciar de forma confiável seus aplicativos Node.js. Para este guia, o sistema de teste usa um serviço systemd e um gerenciador de sistema. Todos os comandos neste artigo serão executados como root (use sudo quando necessário para um usuário com privilégios invocá-lo).
Gerar script de inicialização PM2 para sistema de inicialização
O PM2 foi projetado para funcionar com o sistema init padrão em um sistema Linux (que pode ser detectado automaticamente) para gerar o script de inicialização e configurar o PM2 > como um serviço que pode ser reiniciado na inicialização do sistema.
Para gerar o script de inicialização, basta executar o seguinte comando como root:
pm2 startup
O subcomando startup diz ao PM2 para detectar o sistema init disponível, gerar configuração e ativar o sistema de inicialização.
Você também pode especificar explicitamente o sistema init da seguinte forma:
pm2 startup systems
Para confirmar se o serviço de inicialização PM2 está funcionando no systemd, execute o seguinte comando (substitua pm2-root.service pelo arquivo real nome do seu serviço, verifique a saída do comando anterior):
systemctl status pm2-root.service
Iniciar aplicativos/processos Node.js
Em seguida, você deseja iniciar seus aplicativos Node.js usando PM2 da seguinte maneira. Se você já os tem instalados e funcionando, iniciados via PM2, você pode pular esta etapa:
cd /var/www/backend/api-v1-staging/
pm2 start src/bin/www.js -n api-service-staging
Em seguida, você precisa registrar/salvar a lista atual de processos que deseja gerenciar usando PM2 para que eles reapareçam na inicialização do sistema (sempre que for esperado ou uma reinicialização inesperada do servidor), por executando o seguinte comando:
pm2 save
Verifique o PM2 iniciando automaticamente aplicativos Node.js na inicialização
Finalmente, você precisa testar se a configuração está funcionando bem. Reinicie seu sistema e verifique se todos os seus processos Node.js estão sendo executados no PM2.
pm2 ls
or
pm2 status
Observe que você pode ressuscitar processos manualmente executando o seguinte comando:
pm2 resurrect
Desative o sistema de inicialização
Você pode desativar o sistema de inicialização executando o subcomando unstartup conforme mostrado.
pm2 unstartup
OR
pm2 startup systemd
Para atualizar o script de inicialização, primeiro desative-o e, em seguida, reinicie-o conforme mostrado.
pm2 unstartup
pm2 startup
Referência: Gerador de script de inicialização PM2.