em Sem categoria

Verificar se um processo/app está rodando com bash/shellscript

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)

Escreva um comentário

Comentário