우리는 두 가지가 윈도우 서버 , 하나 2012 R2 와의 다른 2008 R2 사용하는 아파치 HTTP 서버 ( httpd
) 2.4 프록시에서 / 역 프록시 모드 (의 사용 ProxyPass
, ProxyPassReverse
및 가상 호스트 구성). 두 서버 모두 Apache Haus의 Apache 2.4.27 x64 바이너리 빌드를 사용합니다 .
두 서버 모두에서 일부 백업 스크립트가 실행 중입니다. 모든 서비스 (Apache 포함)를 중지 한 다음 백업을 수행하고 모든 서비스를 다시 시작하십시오.
이 스크립트는 몇 년 (약 4 년) 이후 잘 작동합니다. 그러나에서 시작 July 12, 2018
하여 동작이 이상합니다. 백업 스크립트가 작업을 수행하여 모든 서비스를 중지하고 백업을했지만 이제는 Apache를 제외한 모든 서비스가 다시 시작됩니다.
조사한 결과 Apache 2.4.27 서비스를 중지 할 수 없습니다. 서비스 콘솔을 사용하고 수동으로 서비스를 중지하려고하면 콘솔에 "중지"가 표시되고 아무 일도 일어나지 않습니다.
그래서 실행중인 프로세스를 확인하고 httpd.exe
프로세스가 실행되고 있음을 알았습니다 . 나는 그 과정을 죽이려고했지만 운이 없다.
그래서 시도했습니다.
taskkill /im "httpd.exe" /f /t
그리고 출력은 다음과 같습니다
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
그래서 pskill
Sysinternals 에서 프로세스를 종료하는 것으로 테스트했습니다 .
pskill -t 560
그리고 출력은 다음과 같습니다
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
그러나 httpd
프로세스가 항상 실행 중이므로 이것은 거짓입니다 !
그래서 Apache를 2.4.27에서 2.4.34로 업데이트했지만 문제가 남아 있습니다. 상황을 차단 해제하는 유일한 방법은 전체 서버를 재부팅하는 것입니다.
설치된 업데이트를 확인했으며 그 중 일부는 July 11, 2018
하루 전에 설치되었습니다 .
- KB4338420
- KB4338818
- KB4339093
- KB4338423
그래서 나는이 업데이트 중 하나에서 문제가 있다고 가정합니다. 따라서 모두 제거하기 전에 나와 같은 문제가있는 사람이 있습니까? 아파치 2.4를 사용할 수 없으며 Windows Server에서 중지 할 수 없다는 것을 의미 합니까?
가장 큰 문제는 해당 httpd
프로세스를 종료 할 수없는 경우 포트 80이 이미 바인딩되어 있으므로 Apache를 다시 시작할 수 없다는 것입니다.