systemctl 또는 init를 통해 서비스를 다시 시작하면 어떻게 되나요?

systemctl 또는 init를 통해 서비스를 다시 시작하면 어떻게 되나요?

다시 시작하는 동안 프로세스의 수명 주기를 이해하려고 합니다.

예를 들어:

다시 시작 명령을 실행하면

  1. 프로세스 ID가 종료됩니다
  2. 설명자에서 열려 있는 모든 파일을 삭제하거나 플러시합니다.
  3. TCP 또는 Unix 소켓 닫기
  4. 그런 다음 시작하십시오 - 모든 실제 명령이 실행됩니다.

누구든지 이것을 더 나은 방법으로 이해하도록 도울 수 있습니까?

답변1

SIGTERM프로세스가 종료될 것이라는 예상과 함께 신호가 서버 프로세스로 전송됩니다 . 신호를 포착하고 정상적으로 종료하는 데 필요한 모든 작업을 수행하는 것은 프로세스 자체에 달려 있습니다. 즉, 프로세스 자체가 파일 플러시, 열린 네트워크 연결 닫기 등을 담당해야 합니다.

프로세스가 제한 시간 내에 종료되지 않으면 시그널을 통해 강제로 종료됩니다 SIGKILL. 시간 초과의 기본값은 90초입니다.

관련 정보