Estava com um problema rodando aplicação node com PM2 e para fins de debug criei um bash para verificar, me notificar e executar o ressurect do pm2.
Neste caso específico o pm2 não estava conseguindo manter a lista de aplicativos sincronizada, o daemon do PM2 continuava rodando mas os apps não – já aposentei o PM2 e passei tudo para service direto no SO.
Para o bash, usei o ps aux que:
- lista todos os processos em execução, com atributos
- filtra as linhas com o nome do processo (flagstats)
- faz um filtro para remover a linha do próprio grep dos resultados
Removi a notificação (uma mensagem via bot do telegram) do exemplo, pois é irrelevante:
#!/bin/bash
# Verifica se o processo pm2 está rodando
if ! ps aux | grep -w flagstats | grep -v grep > /dev/null
then
echo "flagstats não está rodando. Executando 'pm2 resurrect'."
pm2 resurrect
else
echo "flagstats está rodando."
fi
Code language: PHP (php)