>웹 프론트엔드 >프런트엔드 Q&A >Node.js 애플리케이션을 정상적으로 종료하는 방법

Node.js 애플리케이션을 정상적으로 종료하는 방법

PHPz
PHPz원래의
2023-04-17 15:08:571169검색

Node.js는 오픈 소스 크로스 플랫폼 런타임 환경입니다. 이를 통해 신진 웹 개발자는 간단한 JavaScript 코드를 사용하여 효율적인 애플리케이션을 구축할 수 있습니다. 하지만 개발 중에는 Node.js 애플리케이션을 정상적으로 종료하는 방법을 고려해야 합니다. 이 글에서는 Node.js 코드를 정상적으로 중지하는 방법에 대해 설명합니다.

  1. Ctrl+C 단축키
    터미널 창에서 Ctrl+C를 누르면 Node.js 애플리케이션이 강제 종료됩니다. Linux 및 Unix 환경에서는 이 방법이 가장 빠르고 가장 일반적으로 사용됩니다. 이 키 조합은 Node.js 프로세스 관리자에 바인딩되어 있으며 Ctrl+C를 눌러 애플리케이션을 닫는 데 사용할 수 있습니다.
  2. 신호 처리기
    Node.js의 신호 처리기는 코드를 종료하는 또 다른 효과적인 방법입니다. 이 메소드는 신호를 수신하기 위해 프로세스 객체의 내장 메소드를 사용합니다. 신호가 포착되면 이에 응답하는 코드를 작성할 수 있습니다. 이 접근 방식을 사용하면 신호를 포착하고 처리하여 기본 Node.js 종료 핸들러가 애플리케이션을 종료하는 것을 방지할 수 있습니다.

다음은 신호 처리기 핸들러를 설정하는 방법을 보여주는 예입니다.

function gracefulShutdown() {
  console.log("Node process stopping...");

  // 停止Web服务器
  server.close(() => console.log("HTTP server stopped"));

  // 关闭数据库连接
  mongoose.connection.close(() => console.log("MongoDB connection closed"));

  // 结束Node进程
  process.exit(0);
}

process.on("SIGTERM", gracefulShutdown);
process.on("SIGINT", gracefulShutdown);

이 코드 조각에서 SIGTERM 및 SIGINT 신호가 수신되면 GracefulShutdown 함수가 호출되어 다음 작업을 완료합니다.

  • Shut HTTP 서버를 다운시킵니다.
  • MongoDB 데이터베이스 연결을 닫습니다.
  • Node.js 프로세스를 종료합니다.
  1. Process.exit() 메소드
    Node.js에서 애플리케이션을 완전히 종료하려면 process.exit(0) 메소드를 사용하면 됩니다. 이 경우 아무런 표시도 없이 애플리케이션이 종료됩니다. 하지만 이 방법은 우아한 중지가 아니라는 점에 유의하세요.
  2. Node 및 npm 모듈 사용
    Node.js 및 npm 모듈은 Node.js 애플리케이션을 시작하고 관리하기 위해 특별히 설계되었습니다. 이 방법을 사용하려면 npm 모듈을 사용하여 애플리케이션을 중지하는 코드를 처리하는 Node 애플리케이션을 설치해야 합니다. 이 접근 방식에는 일반적으로 애플리케이션이 정상적으로 중지되도록 하는 경고 또는 종료 이벤트가 포함됩니다.

다음은 Node.js용 영원히 모듈을 사용하는 예입니다.

var forever = require("forever");

var child = new (forever.Monitor)("app.js", {
  max: 3, //最多重启3次
  silent: true, // 启动应用程序时,不显示输出到控制台的日志
  args: []
});

// 在关闭应用程序之前执行以下操作
child.on("exit", function() {
  console.log("App has stopped");
});

// 启动并监视应用程序
child.start();

이 코드 조각에서 영원히 모듈은 Node.js 애플리케이션을 시작하고 모니터링할 수 있습니다. 애플리케이션을 4번 다시 시작해도 성공하지 못하면 애플리케이션이 중지됩니다. 이 방법을 사용하는 경우 서버의 모든 프로세스가 닫히도록 마지막에 영원히 모듈을 중지해야 합니다.

결론

Node.js 애플리케이션 개발에서는 애플리케이션을 올바르게 중지하는 것이 중요한 문제입니다. Node.js 애플리케이션을 정상적으로 종료하면 데이터가 보존되고, 모든 리소스가 영향을 받지 않으며, 다른 애플리케이션의 실행도 영향을 받지 않습니다. 이 기사에서는 Ctrl + C 단축키 사용, 신호 처리 기능 생성, process.exit(0) 메소드 사용, Node 및 npm 모듈 사용을 포함한 네 가지 방법을 제공합니다. Node.js 애플리케이션이 정상적으로 중지되도록 요구 사항에 가장 적합한 방법을 선택할 수 있습니다.

위 내용은 Node.js 애플리케이션을 정상적으로 종료하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.