Como parar a execução do Node JS
Neste artigo você vai aprender algumas maneiras de como parar a execução do Node, para você utilizar em seus projetos
Pra parar a execução de uma aplicação Node.js você tem alguns caminhos: interromper no terminal, chamar process.exit() pra encerrar na hora, usar process.kill() pra enviar um sinal ao processo, ou process.abort() pra sair de imediato gerando um core file. Só que o encerramento na marra pode cortar escritas ainda pendentes na saída, então a documentação do Node recomenda definir process.exitCode e deixar o processo terminar sozinho, além de tratar os sinais SIGINT e SIGTERM pra fechar conexões e concluir o que estava rodando antes de sair

Fala programador(a), beleza? Bora aprender mais sobre Node.js!
Existem várias maneiras de parar a execução de uma aplicação Node.js.
A maneira mais simples é usar o comando CTRL + C no terminal. Isso enviará um sinal de interrupção para o processo Node.js, o que fará com que ele pare de executar.
Outra opção é usar o método process.exit() do objeto process. Esse método pode ser chamado a qualquer momento para encerrar a execução da aplicação. Por exemplo:
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
process.exit();
Você também pode usar o método process.kill() para encerrar a execução de um processo Node.js.
Este método aceita um número de sinal como argumento, que indica o tipo de sinal a ser enviado para o processo.
Por exemplo, para enviar o sinal de interrupção, você pode usar o código a seguir:
process.kill(process.pid, 'SIGINT');
Além disso, é possível usar o método process.abort() para finalizar o processo Node.js de maneira abrupta.
Esse método envia o sinal de aborto (SIGABRT) para o processo e pode causar problemas se houver recursos não liberados ou operações em andamento. Portanto, ele deve ser usado com cuidado.
Para finalizar, é importante lembrar que, ao encerrar a execução de uma aplicação Node.js, é necessário garantir que todos os recursos sejam liberados e que qualquer operação em andamento seja concluída ou cancelada adequadamente.
Isso pode ser feito usando os métodos de limpeza adequados, como process.on('exit', callback) ou process.on('SIGINT', callback), que permitem que você execute código específico quando a aplicação for encerrada.
Por exemplo, se você tiver uma conexão com um banco de dados que precisa ser fechada quando a aplicação for encerrada, pode usar o código a seguir:
process.on('exit', () => {
connection.end();
});
Ou, se você tiver um processo em andamento que precisa ser cancelado quando a aplicação for encerrada, pode usar o código a seguir:
process.on('SIGINT', () => {
process.exit();
});
Deixe um comentário contando o que achou deste artigo 🙂
Quer aprender mais sobre Node.js? Confira o vídeo abaixo:
Conclusão
Neste artigo você viu como parar a execução do Node
Utilizamos algumas abordagens diferentes, agora depende de você avaliar, escolher a sua favorita e implementar no seu programa
Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.
Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!
Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!
Um aviso curto de nuance oficial: o process.exit() força a saída na hora, mesmo com operações assíncronas pendentes, então ele pode truncar escritas que ainda não terminaram no process.stdout / process.stderr (aquele console.log que some da saída). Por isso a própria documentação do Node recomenda, no lugar de chamar process.exit() direto, definir process.exitCode e não agendar mais trabalho no event loop, deixando o processo encerrar sozinho de forma graciosa
Bloco explicando o encerramento gracioso: tratar os sinais SIGINT e SIGTERM pra parar de aceitar novas conexões, concluir as requisições que já estavam rodando e liberar recursos (banco, arquivos) antes de sair. Destacar que o post hoje só cita SIGINT, e o SIGTERM é justamente o sinal que orquestradores e containers mandam pra pedir que o processo feche direitinho
Acrescentar o detalhe operacional oficial: process.abort() sai imediatamente e ainda gera um arquivo core (útil pra depurar um estado ruim), e que ele não está disponível em Worker threads
Incluir as perguntas do bloco geo/faq (diferença entre process.exit() e process.exitCode, o que é graceful shutdown, se os métodos foram descontinuados, o que o abort faz). Cada resposta curta e auto-suficiente
Uma linha confirmando que todos esses métodos (process.exit(), process.kill(), process.abort() e os handlers process.on(‘exit’) / process.on(‘SIGINT’)) continuam ativos e não estão deprecados na documentação atual do Node, e que valem nas versões em uso hoje (Node 24 é Active LTS, o 22 é Maintenance LTS e o 26 é a linha Current). A única deprecação nessa área é o process.mainModule, em favor do require.main
Vale um teste rápido que deixa a diferença escancarada: rodar um script com vários console.log e fechar com process.exit() bem no meio, e depois comparar com o mesmo script usando process.exitCode e deixando ele terminar sozinho. A doc do Node avisa que o process.exit() pode cortar o que ainda não foi escrito no stdout, então dá pra ver linha sumindo da saída no primeiro caso. Esse comparativo eu ainda não rodei aqui pra colar o print do resultado, mas é exatamente o experimento que fecha a dúvida na prática pra quem quiser reproduzir
Perguntas frequentes
Qual a diferença entre process.exit() e process.exitCode?
O process.exit() força a saída o mais rápido possível, mesmo com operações assíncronas pendentes, e por isso pode truncar escritas que ainda não terminaram no stdout/stderr. Já definir process.exitCode e deixar o processo encerrar naturalmente é o caminho recomendado pela doc oficial, porque sai sem cortar a saída no meio
O que é graceful shutdown no Node.js?
É o encerramento gracioso: você trata os sinais SIGINT e SIGTERM pra parar de aceitar novas conexões, concluir as requisições que já estão em andamento e liberar recursos antes de sair. Assim o buffer é esvaziado e nada fica pela metade
process.exit() e process.kill() foram descontinuados?
Não. process.exit(), process.kill(), process.abort() e os handlers process.on(‘exit’) / process.on(‘SIGINT’) continuam presentes e não estão marcados como deprecados na documentação atual do Node. A única deprecação nessa área é o process.mainModule, em favor do require.main
O que o process.abort() faz?
Ele faz o processo sair imediatamente e ainda gera um arquivo core, que ajuda a depurar. Só se liga num detalhe: ele não está disponível em Worker threads
Esses comandos funcionam nas versões atuais do Node?
Funcionam. Os métodos seguem válidos e não deprecados, valendo nas linhas em uso hoje, como o Node 24 (Active LTS), o 22 (Maintenance LTS) e o 26 (Current)
Leia também
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
