Apache HTTP Server 중지 및 다시 시작

단계적 재시작

신호 : USR1 apachectl -k graceful

USR1 또는 graceful 신호는 부모 프로세스가 자식에게 현재 요청 후 종료 (또는 “아무것도 제공하지 않음). 부모는 구성 파일을 다시 읽고 로그 파일을 다시 엽니 다. 각 자식이 죽으면 부모는 구성의 새로운 세대의 자식으로 교체하여 즉시 새 요청을 처리하기 시작합니다.

이 코드는 항상 MPM의 프로세스 제어 지침을 준수하도록 설계되었으므로 클라이언트를 지원하는 데 사용할 수있는 프로세스 및 스레드 수는 재시작 프로세스 전체에서 적절한 값으로 유지됩니다. 다음과 같은 방식으로 div id = “729f2093ce”>

: 1 초 후에 최소 StartServers 새로운 하위 항목이 생성되지 않은 경우 여유 공간을 확보 할 수있을만큼 충분히 생성합니다. 따라서 코드는 서버의 현재 부하에 적합한 자식 수를 유지하고 StartServers 매개 변수를 사용하여 원하는대로 유지하려고합니다.

mod_statusUSR1가 전송 될 때 서버 통계가 0으로 설정되지 않음을 알립니다. 이 코드는 서버가 새 요청을 처리 할 수없는 시간을 최소화하고 (운영 체제에 의해 대기열에 추가되므로 어떤 이벤트에서도 손실되지 않음) 튜닝 매개 변수를 준수하기 위해 작성되었습니다. 이렇게하려면 여러 세대에 걸쳐 모든 어린이를 추적하는 데 사용되는 점수 판을 유지해야합니다.

상태 모듈은 또한 G를 사용하여 단계적 재시작이 제공되기 전에 요청을 처리하기 시작했습니다.

현재는 USR1를 사용하는 로그 회전 스크립트가 모든 어린이가 다시 시작 전 로그가 완료되었습니다. 이전 로그로 작업을 수행하기 전에 USR1 신호를 보낸 후 적절한 지연을 사용하는 것이 좋습니다. 예를 들어 대부분의 조회수가 저 대역폭 링크 사용자의 경우 완료하는 데 10 분 이상 걸리면 이전 로그로 작업을 수행하기 전에 15 분을 기다릴 수 있습니다.

재시작을 실행하면 구성 파일에 오류가 없는지 확인하기 위해 구문 검사가 먼저 실행됩니다. 구성 파일에 오류가있는 경우 해당 구문 오류에 대한 오류 메시지가 표시되고 서버는 다시 시작을 거부합니다. 이렇게하면 서버가 중지 된 다음 다시 시작할 수없는 상황을 피하여 서버가 작동하지 않게됩니다.

그래도 서버가 제대로 다시 시작된다는 보장은 없습니다. 구성 파일의 의미와 구문을 확인하려면 루트가 아닌 사용자로 httpd를 시작해보십시오. 오류가 없으면 소켓과 로그를 열려고 시도하고 루트가 아니기 때문에 실패합니다 (또는 현재 실행중인 httpd에 이미 해당 포트가 바인딩되어 있기 때문에). 실패 할 경우 다른 이유 때문에 구성 파일 오류 일 수 있으며 정상적인 재시작을 실행하기 전에 오류를 수정해야합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다