Pesquisa de site

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.