Estou tentando aprender a usar scripts Bash e encontrei um erro estranho.
Abri um terminal e executei um programa npm usando o seguinte comando:
node index.js &
Isso está executando uma API express.js que posso usar em uma UI que estou criando.
Depois disso fechei e saí do terminal,
Mas quando abro o carteiro, minha API ainda está rodando!
Não aparece quando uso $ps ou $jobs.
Como encontro e fecho este programa?
ps Estou usando a versão mais recente do Mac OS. pps Me desculpe se esta pergunta já foi feita.
Responder1
Como encerrar o processo após sair do terminal
Você tem várias opções, mas a mais fácil que encerra todos node
os processos é:
killall node
Ou obtenha uma lista de processos ps -ef
e encontre aquele que você deseja eliminar:
ps -ef | grep "node" | grep -v grep
Apenas correr ps
não será suficiente. O PID será mostrado na segunda coluna, então execute:
kill <pid>
Onde <pid>
está o ID do processo.
O que fazer em vez de&
Se você deseja ter um programa rodando o tempo todo durante o desenvolvimento, como um servidor web, você pode usar ferramentas comoforever
. Eles são feitos para executar programas em segundo plano (com parâmetros opcionais), que você também pode interromper facilmente.