Windows 2008R2에서 중단 된 서비스를 종료하는 방법


8

NSClient ++를 실행하는 Windows 2008R2 서버가 있습니다. 어떤 이유로이 서비스는 간지러워서 Nagios 폴링에 대한 응답을 중지했습니다.

서비스를 다시 시작하려고하면 서비스 관리자가 서비스를 종료하려고 시도하는 데 시간이 오래 걸리고 결국 "서비스가 너무 오래 걸려 응답하지 못했습니다"라는 메시지가 표시됩니다. 그러나 ... 또한 새로운 서비스 인스턴스를 시작합니다.

작업 관리자를 보거나 tasklist지금 두 개의 nsclient++.exe실행 인스턴스를 볼 수 있습니다 .

나는 다음을 사용하여 두 가지 모두를 죽이려고했다.

  • 작업 관리자에서 마우스 오른쪽 단추를 클릭하고 "프로세스 끝내기"-프로세스를 종료 한 것으로 가정하고 오류 (예 : 액세스 거부)를보고하지만 프로세스는 여전히 존재합니다.

  • taskkill /PID <proc id> /F-보고 SUCCESS: The process with PID 6672 has been terminated.하지만 프로세스가 여전히 실행 중입니다.

  • SysInternals PsTools를 다운로드하고 pskill <PID>보고서를 실행 Process <PID> killed했지만 아직 프로세스가 남아 있습니다.

  • 실행 at hh:mm pskill <PID>얻을 수 pskill는 AS 이렇게 SYSTEM계정 ... 당신은 프로세스가 계속 실행되고 그것을 짐작.

위의 모든 것은 관리자 명령 프롬프트에서 실행되었습니다.

실제로 이상적이지 않은 재부팅 (상자는 업무상 중요한 프로덕션 서버 임) 이외의 다른 작업을 수행 할 수 있습니까?

서버는 리소스 압력 (메모리, CPU, 디스크 등)을받지 않으며 서버에서 실행되는 모든 것이 잘 작동합니다.

SysInternals Process Explorer의 스레드 탭을 살펴보면 이러한 모든 nsclient++.exe인스턴스가 언로드 상태로 붙어 있음을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오

따로, 새로운 인스턴스를 시작할 수 있고 포트 5666을 가져올 수 있기를 희망하여 TCPView를 사용하여 이러한 좀비 (?) 프로세스에 대한 모든 TCP 연결을 종료하려고 시도했습니다. 그런 다음 서버를 재부팅 할 수 있습니다 상황이 더 조용하지만 아쉽지만 작동하지 않습니다.


3
프로세스가 작업 관리자로 종료되지 않으면 실제로 커널 루틴에 갇혀 있습니다. 따라서 Windows에 문제가 있습니다. "흥미로운"드라이버가 설치되어 있습니까?
Chris S

운전사가 현명하게 달리는 것은 아무것도 없습니다. XenServer VM이므로 일반적으로 문제가없는 일반적인 Xen 드라이버가 있습니다. 우리는 또한 R1 CDP Enterprise를 실행하며 이는 정상적인 작동 매개 변수 내에서 작동하는 것으로 보입니다. procexp.exe의 스레드 탭을 보여주는 스크린 샷을 추가했습니다.
Kev

를 클릭 Stack하면 걸린 스레드의 스택 모양은 무엇입니까?
HeatfanJohn

@HeatfanJohn-그것도 생각했지만 그렇게 할 때 "쓰레드 액세스 오류 "오류 가 발생 합니다.
Kev

내 생각에 그것은 커널 루틴에 갇혀있는 @ChrisS의 의견과 관련이 있습니다.
HeatfanJohn

답변:


3

이미 알아 낸 것처럼 보이지만 문제는 프로세스가 커널에서 무언가를 기다리고 있다는 것입니다. (이것은 일반적으로 드라이버 수준 문제이지만 항상 그런 것은 아닙니다.) 이러한 프로세스를 종료하는 유일한 방법은 커널을 언로드하는 것입니다. 물론 재부팅하지 않고는 할 수 없습니다.

특정 원인이나 충돌을 좁히기 위해 일부 커널 디버깅 ( 이 도구는 2008 R2에서 작동 합니까?)을 시도해 볼 수 있지만 문제를 처리하기위한 옵션은 문제를 해결하거나 서버를 재부팅하여 제거합니다.

당신이 그것과 함께 사는 것을 고려하지 않은 이유가 있습니까? 좀비 프로세스 일 뿐이고 아무런 영향을 미치지 않으면 유지 관리 기간이나 더 적절한 시간까지 재부팅을 취소 할 수 있다고 생각합니다. 좀비 또는 멈춤 프로세스가 어떤 것도 방해하지 않는 경우 일반적으로 나의 접근 방식은 다음 패치주기 또는 예정된 유지 관리 기간 동안주의하십시오.


안타깝게도 WinDbg에서 이러한 프로세스를 조사하기에는 인프라 스트럭처가 서버를 재부팅했습니다. 그러나 다음에 알아두면 편리합니다.
Kev

다른 문제는 우리가 이렇게 살 수 없다는 것이 었습니다. 이 서비스는 nagios와 함께 사용하는 NSClient ++입니다. 폴링 요청에 응답하기 위해 새로운 서비스 exe를 얻을 수조차 없었습니다.이 좀비 프로세스는 여전히 수신 대기하는 포트 5666에 매달려 있기 때문에 (그중 하나가 여전히 TCPView에서 포트를 잡고 있음을 알 수 있습니다. 닫을 수 없습니다).
Kev

글쎄, 그것은 확실히 살지 않는 아주 좋은 이유입니다.
HopelessN00b

다시 발생하면 Mark Russinovich의 아기 중 하나 인 프로세스 모니터를 잊지 마십시오. 프로세스에서 procmon을 지정하여 수행중인 작업을 확인하십시오. 훌륭한 도구.
Simon Catlin

@SimonCatlin-예, 나도 그렇게했지만 아무것도 나에게 튀어 나오지 않았습니다.
Kev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.