Na maioria das vezes, quando seu aplicativo falha, ele precisa ser reiniciado manualmente. Isso pode ser bastante inconveniente, especialmente se você tiver muitos aplicativos sendo executados em seu servidor. A boa notícia é que o pm2 facilita o gerenciamento de processos com a opção de reinício automático.
Para começar, certifique-se de ter o pm2 instalado em seu sistema. Você pode instalá-lo a partir do npm usando o comando abaixo:
```
npm install pm2 -g
```
Agora, vamos ver como configurar a funcionalidade de reinício automático:
1. Primeiro, inicie o seu aplicativo usando o pm2 com o seguinte comando:
```
pm2 start app.js --name myapp
```
2. Defina a opção 'autorestart' como true usando o seguinte comando:
```
pm2 set autorestart true
```
Isso garantirá que o aplicativo seja reiniciado automaticamente caso ocorra uma falha.
3. Verifique se a opção foi definida corretamente usando o seguinte comando:
```
pm2 show myapp
```
Isso mostrará as configurações detalhadas do aplicativo.
Agora, seu aplicativo será automaticamente reiniciado pelo pm2 se ocorrer uma falha. Isso é particularmente útil em cenários de produção onde a disponibilidade do aplicativo é crítica.
Outra opção que você pode usar com o pm2 é o 'watch', o que pode ser muito útil durante o desenvolvimento. Quando a opção 'watch' é definida como true, o pm2 verifica automaticamente o código-fonte do aplicativo em busca de alterações e reinicia o aplicativo caso ocorram.
Por exemplo, se você estiver desenvolvendo um servidor Node.js, poderá executar o seguinte comando:
```
pm2 start app.js --name myapp --watch
```
Agora, sempre que você fizer alterações no código-fonte, o pm2 reiniciará automaticamente o aplicativo para que as alterações sejam refletidas.
Em resumo, o pm2 é uma ferramenta poderosa que facilita o gerenciamento de processos em sua infraestrutura Node.js. A capacidade de reiniciar automaticamente os aplicativos em caso de falhas é especialmente útil em cenários de produção onde a disponibilidade do aplicativo é crítica. Além disso, a opção 'watch' é muito útil durante o desenvolvimento, permitindo que você faça alterações no código-fonte sem precisar reiniciar o aplicativo manualmente.