중지 옵션이 회색으로 표시 될 때 Windows 서비스 중지


80

Windows 서비스를 만들었고 제어판-> 관리 도구-> 서비스의 서비스에서 상태가 시작 중입니다.

이 서비스를 중지하고 싶지만 중지 옵션이 회색으로 표시됩니다. 서비스를 시작 / 중지하려면 어떻게해야합니까?

다시 시작할 때마다 중지되고 삭제할 수 있습니다.


달성하고자하는 것이 무엇입니까? 중지하거나 삭제 하시겠습니까?
Anirudh Ramanathan 2011 년

삭제하지만 삭제하기 전에 중지해야합니다. 현재 상태가 시작 중입니다.
DotnetSparrow 2011 년

작업 관리자를 사용하여 서비스를 실행하는 exe를 죽이려고 했습니까?
Chris J

1
@Chris : 작업 관리자 아래에 나열되어 있지 않습니다. 서비스가 아직 시작되지 않았기 때문일까요?
DotnetSparrow 2011 년

답변:


147

명령을 실행하는 경우 :

sc queryex <service name>

여기서는 표시 이름이 아닌 서비스 이름 (인쇄 스풀러가 아닌 스풀러)이며 cmd 프롬프트에서 서비스가 실행중인 프로세스의 PID를 반환합니다. 그 PID를 가지고 실행

taskkill /F /PID <Service PID>

PID를 강제로 중지합니다. 때때로 GUI를 중지하는 동안 프로세스가 중단되면 서비스로 아무것도 할 수 없습니다.


2
Windows 2000은 지원하지 않으므로 sc ..해당 서비스의 속성에서 프로세스 Path to executable를 찾아 taskmgr에서 종료했습니다.
AD

@ DrPppr242, 이것이 안전한 옵션입니까?
Pacerier

3
이 작업을 수행하는 유일한 방법은 관리자 권한으로 명령 프롬프트를 실행하는 것입니다.
hurleystylee

2
빌어 먹을 Baidu Hips Service에서는 작동하지 않습니다. cmd를 관리자로 실행하는 경우도 있습니다. 가끔은 ...이 엉터리 OS 내 자신의 컴퓨터의 소유자 아니에요 기분
파울로 카르발류

1
CMD를 관리자로 실행 해 보았습니다. 다음 오류가 발생합니다. PID XXXX로 프로세스를 중지 할 수 없습니다. 이유 : 액세스가 거부되었습니다.
Floppy88 2019 년


8

중지 옵션이 회색으로 표시되면 서비스가 SERVICE_ACCEPT_STOP마지막 호출시 수락 중임을 나타내지 않은 것 SetServiceStatus입니다. .NET을 사용하는 경우 .NET에서 CanStop속성 을 설정해야합니다 ServiceBase.

물론 중지 요청을 수락하는 경우 서비스가 이러한 요청을 안전하게 처리 할 수 ​​있는지 확인하는 것이 좋습니다. 특히 서비스가 시작 코드를 통해 계속 진행중인 경우에는 더욱 그렇습니다.


7

작업 관리자를 사용하여 서비스를 찾고 작업 종료를 사용하여 서비스를 종료하십시오. 항상 나를 위해 속임수를 사용합니다.

서비스를 직접 만든 경우 OnStart 이벤트에서 장기 실행 작업을 제거하는 것이 좋습니다. 일반적으로 이로 인해 서비스가 응답하지 않습니다.


1
작업 관리자의 END TASK는 Windows Defender 또는 타사의 다른 보안 서비스와 같이 "NOT_STOPPABLE"로 구성된 서비스를 중지하지 않으며 액세스 거부 메시지 만 받게됩니다.
arana

5

Aaron이 위에서 언급했듯이 일부 서비스 SERVICE_ACCEPT_STOP는 개발 당시에 는 메시지를 받지 않습니다 . 그리고 그것은 실행 파일로 하드 코딩됩니다. 기간. 작업은 시작하지 않는 것이며 속성을 변경할 수 없으므로 강제로 다음을 수행하십시오.

  1. 안전 모드로 부팅 (Windows 10 사용자는 msconfig> 부팅> 안전 부팅이 필요할 수 있음)
  2. HKLM> 시스템> ControlSet001> 서비스로 Regedit
  3. 서비스 항목 찾기
  4. '시작'키를 3 (수동 시작) 또는 4 (비활성화)로 변경합니다.

항목을 변경할 수없는 경우 왼쪽 창에서 서비스 이름을 마우스 오른쪽 버튼으로 클릭하고 '권한'을 선택한 다음 '모든 사람'이 전체 액세스 권한을 가지고 있는지 확인하고 4 단계를 다시 시도하십시오.

msconfig에서 안전 부팅을 다시 비활성화하고 재부팅하는 것을 잊지 마십시오!


1
좋은 대답입니다. 서비스가 PID를 사용해도 삭제할 수 없기 때문에 작동했습니다. 시작 키 값을 수정하고 다시 시작한 후 서비스를 삭제할 수있었습니다. 감사합니다.
Duque


1

관리자 권한으로 명령 프롬프트를 열고 여기에 다음 명령을 입력합니다.

ㅏ)

tasklist

사용 가능한 모든 서비스 목록을 표시합니다. 여기에서 중지 / 시작 / 다시 시작하려는 서비스를 볼 수 있습니다. 강제 중지하려는 서비스의 PID 값을 기억하십시오.

b) 이제 입력

taskkill /f /PID [PID value of the service] 

Enter를 누르십시오. 성공하면 "성공 : PID 프로세스가 종료되었습니다"라는 메시지가 표시됩니다.

Ex : taskkill /f /PID 5088

이렇게하면 고정 된 서비스가 강제로 종료됩니다. 이제 서버 관리자로 돌아가 서비스를 다시 시작할 수 있습니다.


0

다음 단계로 문제를 해결했습니다.

  1. 명령 / Windows RUN에서 "services.msc"를 엽니 다.

  2. 서비스를 찾습니다 (회색으로 표시됨).

  3. 해당 서비스를 두 번 클릭하고 "복구"탭으로 이동합니다.

  4. 확인하십시오

    • First Failure action은 "Take No action"으로 선택됩니다.
    • 두 번째 실패 조치는 "조치 없음"으로 선택됩니다.
    • 후속 실패 조치는 "조치 없음"으로 선택됩니다.

    확인을 누릅니다.

이제 서비스가 다시 시작되지 않으며 서비스 목록에서 회색으로 표시된 서비스를 삭제할 수 있습니다 (즉, 회색으로 표시된 서비스는 사라집니다).


이것은 좋은 지적이지만 Win10에서 제안하는 모든 옵션이 회색으로 표시됩니다. 막혔어요. 프로세스를 중지 할 때마다 (CyOptics) 다시 시작됩니다. CPU의 40 % 이상을 차지합니다. :-( 관리자 액세스로 모든 시도를했습니다
emare
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.