A Node.js process manager is a useful tool to ensure that a Node.js process or script runs continuously (forever) and can enable it to auto-start at system boot.
Permite que você monitore os serviços em execução e facilita tarefas comuns de administração de sistema (como reiniciar em caso de falha, parar, recarregar configurações sem tempo de inatividade, modificar variáveis de ambiente/configurações, mostrar métricas de desempenho e muito mais). Também suporta o log de aplicativos, clustering e balanceamento de carga, e muitos outros recursos úteis de gerenciamento de processos.
Leia Também: 14 Melhores Frameworks NodeJS para Desenvolvedores em 2019
A package manager is useful especially for deployment of Node.js applications in a production environment. In this article, we will review four process managers for Node.js application management in a Linux system.
1. PM2
PM2 é um gerenciador de processos de nível de produção open-source, avançado, versátil e multiplataforma mais popular para Node.js com um balanceador de carga embutido. Permite listar, monitorar e agir em todos os processos Nodejs iniciados e suporta o modo de cluster.

Ele suporta o monitoramento de aplicativos: oferece uma maneira simples de monitorar o uso de recursos (memória e CPU) do seu aplicativo. Suporta seu fluxo de trabalho de gerenciamento de processos, permitindo configurar e ajustar o comportamento de cada aplicativo por meio de um arquivo de processo (formatos suportados incluem Javascript, JSON e YAML).
Os logs da aplicação são sempre essenciais em um ambiente de produção; nesse sentido, o PM2 permite que você gerencie facilmente os logs da sua aplicação. Ele oferece diferentes maneiras e formatos para lidar e exibir os logs, respectivamente. Você pode exibir os logs em tempo real, limpá-los e recarregá-los quando necessário.
Importante destacar que o PM2 suporta scripts de inicialização que você pode configurar para iniciar automaticamente seus processos durante reinicializações planejadas ou não planejadas da máquina. Ele também suporta reinicialização automática de uma aplicação quando um arquivo é modificado no diretório atual ou em seus subdiretórios.
Além disso, o PM2 vem com um sistema de módulos que permite aos usuários criar módulos personalizados para o gerenciamento de processos Node.js. Por exemplo, você pode criar um módulo para rotação de logs ou balanceamento de carga, e muito mais.
Por último, mas não menos importante, se você estiver usando contêineres Docker, o PM2 permite integração com contêineres e oferece um sistema de API que permite seu uso de forma programática.
2. StrongLoop PM
O StrongLoop PM também é um gerenciador avançado de processos de produção de código aberto para aplicações Node.js com balanceamento de carga integrado, assim como o PM2, e pode ser utilizado através de uma interface de linha de comando ou de uma interface gráfica.

Ele suporta monitoramento de aplicativos (visualizar métricas de desempenho como tempos de loop de evento, consumo de CPU e memória), implantação em vários hosts, modo de cluster, reinicializações e atualizações de aplicativos sem tempo de inatividade, reinicialização automática de processos em caso de falha e agregação e gerenciamento de logs.
Além disso, ele vem com suporte para Docker, permite exportar métricas de desempenho para servidores compatíveis com StatsD e visualizá-las em consoles de terceiros como DataDog, Graphite, Splunk além de Syslog e arquivos de log brutos.
3. Forever
Forever é uma ferramenta de linha de comando simples e configurável de código aberto para executar continuamente (para sempre) um determinado script. É adequado para executar implantações menores de aplicativos e scripts Node.js. Você pode usar forever de duas maneiras: através da linha de comando ou incorporando-o em seu código.

Ele permite que você gerencie (inicie, liste, pare, pare tudo, reinicie, reinicie tudo, etc.) processos Node.js e suporta monitoramento de alterações de arquivos, modo de depuração, logs de aplicativos, encerramento de um processo e personalização de sinal de saída, e muito mais. Além disso, ele suporta várias opções de uso que você pode passar diretamente da linha de comando ou passar em um arquivo JSON.
4. SystemD – Gerenciador de Serviços e Sistema
No Linux, Systemd é um daemon que gerencia recursos do sistema, como processos e outros componentes do sistema de arquivos. Qualquer recurso gerenciado pelo systemd é conhecido como uma unidade. Existem diferentes tipos de unidades, incluindo serviço, dispositivo, soquete, montagem, destino e muitas outras unidades.
Systemd gerencia unidades por meio de um arquivo de configuração conhecido como um arquivo de unidade. Portanto, para gerenciar seu servidor Node.js como qualquer outro serviço do sistema, você precisa criar para ele um arquivo de unidade, que neste caso será um arquivo de serviço.
Uma vez que você tenha criado um arquivo de serviço para seu servidor Node.js, você pode iniciá-lo, habilitá-lo para iniciar automaticamente no tempo de inicialização do sistema, verificar seu status, reiniciá-lo (parar e iniciar novamente) ou recarregar sua configuração e até mesmo pará-lo como qualquer outro serviço systemd.
Para obter mais informações, consulte: Como Criar e Executar Novos Serviços em Unidades Systemd Usando Script Shell
Resumo
A Node.js package manager is a useful tool for deploying your project in a production environment. It keeps an application alive forever and simplifies how you can control it. In this article, we reviewed four package managers for Node.js. If you have any additions or questions to ask, make use of the feedback form below to reach us.
Source:
https://www.tecmint.com/process-managers-for-node-js-applications-in-linux/