[windows-services] 중지 옵션이 회색으로 표시 될 때 Windows 서비스 중지

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

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

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



답변

명령을 실행하는 경우 :

sc queryex <service name>

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

taskkill /F /PID <Service PID>

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


답변

한 줄로 수행 할 수 있습니다 (CI 환경에 유용함).

taskkill /fi "Services eq SERVICE_NAME" /F

필터-> 서비스-> ServiceName이 SERVICE_NAMES와 같음-> 강제

출처 : https://technet.microsoft.com/en-us/library/bb491009.aspx


답변

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

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


답변

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

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


답변

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

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

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

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


답변

sc queryex <service name>
taskkill /F /PID <Service PID>

여기에 이미지 설명 입력

예


답변

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

ㅏ)

tasklist

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

b) 이제 입력

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

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

Ex : taskkill /f /PID 5088

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