Como utilizar o PM2 para gerenciar aplicações
Tags: programming, tutorial, beginners, pm2
Published: 2023-09-21 16:51:14

É muito comum que nós desenvolvedores precisemos de ferramentas que visam facilitar o desenvolvimento e organização na hora de desenvolver uma aplicação mais complexa.

O **PM2** (Process-manager-2) é um gerenciador de pacotes bem popular de código aberto que visa melhorar a administração geral das suas aplicações Node.Js. Ele oferece ao desenvolvedor uma interface inteligente própria para ser exibida em CLI (Command-line-interface).

**Interface:**
![Exemplo da interface do PM2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ugos3dhovqsd70svcgon.png)

Algumas das funções que a utilização da ferramenta pode te proporcionar é a facilidade de gerenciamento através de comandos simples e automatizações que são realmente úteis.

Algumas das vantagens que você terá em utilizar o **PM2**:

- **Auto-start**: O PM2 pode iniciar uma aplicação e mante-la online dioturnamente através do comando de inicialização atrelado a um comando da ferramenta.

- **Health checks:** O PM2 pode realizar verificações de saúde em um aplicativo Node.js para garantir que ele esteja funcionando corretamente.

- **Log monitoring:** O PM2 pode monitorar os logs de um aplicativo Node.js para identificar problemas.

- **Safe reloading:** O PM2 oferece a capacidade de recarregar seus aplicativos Node.js sem interrupções de serviço. Isso é feito para garantir que os novos processos estejam em execução antes de desligar os antigos.

Algumas da desvantagens que você possivelmente encontrará no **PM2**:

- **Consumo de Recursos:** Em alguns casos, utilizar um gerenciador de pacotes como a ferramenta apresentada, significará em um consumo de recursos excessivo em uma máquina mais simples.

- **Complexidade:** Caso você nunca tenha utilizado um gerenciador de pacotes antes, é possível que você se sinta perdido a realizar os procedimentos pelas primeiras vezes, esta documentação é apenas um guia simples, temos muito mais conteúdos pela internet.

<hr>

#### **Instalação do PM2**

```
sudo npm install -g pm2
pm2 startup (Para iniciar o processo)
```

Caso você  esteja utilizando uma VPS é possível que seja necessária a adição do processo no Firefwall.

```
sudo systemctl enable pm2-root (Ativa o processo)
sudo systemctl status pm2-root (Verificar status de funcionamento)
```
Após a instalação, você receberá certamente receberá uma tela parecida com essa se o procedimento for feito de maneira correta:
![Tela inicial](https://budi.day/uploads/2020-06-19-nodejs-aws-07-pm2-start.jpg)

<hr>

#### **Utlização do PM2**

Após a instalação, você pode adicionar o seu pacote atribuindo um nome a ele.

```
pm2 start your_project
pm2 status (Verifica se foi iniciado)
pm2 stop your_project (Desligar caso necessário)
```
<hr>
### Como deixar o projeto online automaticamente?
É necessário para não termos na necessidade de ligar o projeto a todo momento.


Linha de comando:
```
sudo pm2 start "yarn dev" --name="your_project"
```

O comando de inicialização manual do projeto deve ser o mesmo que for declarado entre as aspas após escrever `start`. Esta linha de comando evita que o processo da sua aplicação seja encerrado, mantendo-o sempre online.
<br>
Alguns comandos que podem ser úteis para o gerenciamento geral do seu projeto ou pacote:

```
sudo pm2 start Nome_do_Projeto (Ligar o projeto)
sudo pm2 stop Nome_do_Projeto (Desligar o projeto)
sudo pm2 logs Nome_do_Projeto (Visitar as logs)

```


Você pode buscar outros comandos importantes relacionados ao PM2
na [documentação oficial](https://pm2.keymetrics.io/docs/usage/quick-start/) ou em outros conteúdos pela internet.

<br>
Prontinho! ✅ agora você sabe o básico sobre PM2, e já consegue geremciar uma aplicação utilizando esta ferramenta. Obrigado pela sua leitura até aqui.

&nbsp;
Conheça a Cherry Code -> https://cherrycode.com.br