Descobrir o PID do aplicativo node.js exato

1

Aqui está uma saída do meu ps aux:

ps aux | grep "node"
root      2501  0.0  3.4 720400 68512 ?        Sl   16:09   0:03 node /etc/skbx/host/skbx.js 8081 tula13 8082 8084 8085 10.8.0.6
root     20586  0.0  0.1  17396  2664 pts/16   S+   21:29   0:00 grep --color=auto node

Desconsidere o segundo, temos um processo de nó. Eu preciso descobrir no bash o PID do processo do nó que está executando skbx.js exatamente.

Como eu poderia fazer isso? Obrigado.

    
por Maxim V. Pavlov 14.09.2015 / 20:32

1 resposta

2

Em geral, se você estiver procurando pelo PID de uma linha de comando conhecida, pgrep é preferível a ps | grep , porque você não precisa filtrar a saída para extrair o PID. Você pode usar pgrep com -f para corresponder à linha de comando completa:

pgrep -f 'node /etc/skbx/host/skbx.js'

Você também pode segmentar processos por ID de processo pai e terminal de controle, entre outros critérios.


Se você não tiver o pgrep instalado, poderá usar grep em um pipeline. No exemplo a seguir, usamos uma classe de caractere no padrão fornecido para grep para evitar que grep aparecesse na saída. Isso é menos digitação do que enviar a saída para grep -v grep ou similar:

ps aux | grep '[n]ode /etc/skbx/host/skbx.js' | awk '{print $2}'

O comando grep listado na saída ps incluirá literais de colchetes que não são correspondidos no padrão resultante usado por grep .

    
por 14.09.2015 / 20:53