Windows 서비스를 만들었고 제어판-> 관리 도구-> 서비스의 서비스에서 상태가 시작 중입니다.
이 서비스를 중지하고 싶지만 중지 옵션이 회색으로 표시됩니다. 서비스를 시작 / 중지하려면 어떻게해야합니까?
다시 시작할 때마다 중지되고 삭제할 수 있습니다.
Windows 서비스를 만들었고 제어판-> 관리 도구-> 서비스의 서비스에서 상태가 시작 중입니다.
이 서비스를 중지하고 싶지만 중지 옵션이 회색으로 표시됩니다. 서비스를 시작 / 중지하려면 어떻게해야합니까?
다시 시작할 때마다 중지되고 삭제할 수 있습니다.
답변:
명령을 실행하는 경우 :
sc queryex <service name>
여기서는 표시 이름이 아닌 서비스 이름 (인쇄 스풀러가 아닌 스풀러)이며 cmd 프롬프트에서 서비스가 실행중인 프로세스의 PID를 반환합니다. 그 PID를 가지고 실행
taskkill /F /PID <Service PID>
PID를 강제로 중지합니다. 때때로 GUI를 중지하는 동안 프로세스가 중단되면 서비스로 아무것도 할 수 없습니다.
sc ..
해당 서비스의 속성에서 프로세스 Path to executable
를 찾아 taskmgr에서 종료했습니다.
한 줄로 수행 할 수 있습니다 (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
.
물론 중지 요청을 수락하는 경우 서비스가 이러한 요청을 안전하게 처리 할 수 있는지 확인하는 것이 좋습니다. 특히 서비스가 시작 코드를 통해 계속 진행중인 경우에는 더욱 그렇습니다.
Aaron이 위에서 언급했듯이 일부 서비스 SERVICE_ACCEPT_STOP
는 개발 당시에 는 메시지를 받지 않습니다 . 그리고 그것은 실행 파일로 하드 코딩됩니다. 기간. 작업은 시작하지 않는 것이며 속성을 변경할 수 없으므로 강제로 다음을 수행하십시오.
항목을 변경할 수없는 경우 왼쪽 창에서 서비스 이름을 마우스 오른쪽 버튼으로 클릭하고 '권한'을 선택한 다음 '모든 사람'이 전체 액세스 권한을 가지고 있는지 확인하고 4 단계를 다시 시도하십시오.
msconfig에서 안전 부팅을 다시 비활성화하고 재부팅하는 것을 잊지 마십시오!
관리자 권한으로 명령 프롬프트를 열고 여기에 다음 명령을 입력합니다.
ㅏ)
tasklist
사용 가능한 모든 서비스 목록을 표시합니다. 여기에서 중지 / 시작 / 다시 시작하려는 서비스를 볼 수 있습니다. 강제 중지하려는 서비스의 PID 값을 기억하십시오.
b) 이제 입력
taskkill /f /PID [PID value of the service]
Enter를 누르십시오. 성공하면 "성공 : PID 프로세스가 종료되었습니다"라는 메시지가 표시됩니다.
Ex : taskkill /f /PID 5088
이렇게하면 고정 된 서비스가 강제로 종료됩니다. 이제 서버 관리자로 돌아가 서비스를 다시 시작할 수 있습니다.
다음 단계로 문제를 해결했습니다.
명령 / Windows RUN에서 "services.msc"를 엽니 다.
서비스를 찾습니다 (회색으로 표시됨).
해당 서비스를 두 번 클릭하고 "복구"탭으로 이동합니다.
확인하십시오
확인을 누릅니다.
이제 서비스가 다시 시작되지 않으며 서비스 목록에서 회색으로 표시된 서비스를 삭제할 수 있습니다 (즉, 회색으로 표시된 서비스는 사라집니다).