오, SIGTERM 신호!



재미있는 사실: Ctrl + C를 사용하여 애플리케이션을 중지하면 SIGTERM 신호가 전송됩니다.

SIGTERM 신호! 🐧🧊
...SIGTERM는 무엇입니까? 🐧
신호가 무엇인가요? 🧊

신호는 기본적으로 컴퓨터의 도로 표지판입니다. 정지, 감속, 정지 준비, 도로 폐쇄 등... "프로세스 간 통신"또는 IPC의 한 형태라고 하며 일반적으로 POSIX 호환 운영 체제에서 사용됩니다. POSIX는 운영 체제가 서로 잘 작동하도록 돕는 데 사용되는 표준 집합인 "휴대용 운영 체제 인터페이스"입니다.

ASIGTERM는 일종의 "정지 준비"신호 유형입니다. 일반적으로 응용 프로그램이 완전히 종료되기 전에 진행 중인 모든 프로세스를 마무리하기 위해 코드에서 "잡아"사용할 수 있는 일종의 신호입니다. 이는 자동으로 종료되는 SIGKILL 와 대조됩니다.

정상적인 종료



이것이 왜 중요한가요? 수신된 SIGTERM을 "잡아"처리하여 응용 프로그램을 정상적으로 종료할 수 있습니다.

정상적인 종료에는 다음이 포함될 수 있습니다.
  • 새 요청 수신 중지
  • 진행 중인 모든 요청 완료
  • 리소스 정리(예: 데이터베이스 연결)

  • 앱, 리소스 및 사용자를 행복한 위치에 둡니다.

    일부 앱의 경우 상당한 양의 구성이 필요합니다. 하지만 때로는 프로세스를 완료하기 위한 시간 제한만 있으면 됩니다.

    process.on('SIGTERM', shutdown);
    
    const shutdown = () => {
      const gracePeriodInMS = 30000;
    
      setTimeout(() => {
        process.exit(0);
      }, gracePeriodInMs);
    }
    

    잘 코딩하세요, 친구들!

    추가 리소스:
    Graceful Shutdown in NodeJS
    Linux Manual Page - Signals
    Graceful Shutdown with NodeJS and Kubernetes : 여기에서 "작동 방식"이미지가 특히 마음에 듭니다. 나는 시각적 표현에 관한 모든 것입니다!

    좋은 웹페이지 즐겨찾기