
win32_query_service_status 함수의 매개변수는 다음과 같습니다.
- hServiceHandle: 서비스의 핸들을 지정합니다. 서비스 핸들은 OpenService 함수를 사용하여 얻을 수 있습니다.
- dwServiceStatus: 서비스의 상태를 저장할 변수입니다. 서비스 상태는 SERVICE_STATUS 구조체에 저장됩니다.
win32_query_service_status 함수의 반환값은 다음과 같습니다.
- 성공 시: TRUE
- 실패 시: FALSE
이 함수를 사용하여 서비스의 상태를 확인하는 예시 코드는 다음과 같습니다.
#hostingforum.kr
python
import win32service
import win32serviceutil
def getServiceStatus(serviceName):
try:
hServiceHandle = win32serviceutil.OpenService(win32service.OpenSCManager(None, None, win32service.SCM_ACCESS_ALL), serviceName, win32service.SERVICE_QUERY_STATUS)
if hServiceHandle:
dwServiceStatus = win32service.QueryServiceStatus(hServiceHandle)
if dwServiceStatus:
print(f"서비스 이름: {serviceName}")
print(f"서비스 상태: {dwServiceStatus[1]}")
print(f"서비스 시작 유형: {dwServiceStatus[2]}")
print(f"서비스 상태: {dwServiceStatus[3]}")
print(f"서비스 확인 시간: {dwServiceStatus[4]}")
print(f"서비스 시작 시간: {dwServiceStatus[5]}")
print(f"서비스 종료 시간: {dwServiceStatus[6]}")
print(f"서비스 활성 시간: {dwServiceStatus[7]}")
print(f"서비스 활성 시간: {dwServiceStatus[8]}")
else:
print(f"서비스 상태를 확인할 수 없습니다.")
else:
print(f"서비스 핸들을 열 수 없습니다.")
except Exception as e:
print(f"에러: {e}")
getServiceStatus("서비스 이름")
이 코드는 서비스 이름을 지정하여 서비스의 상태를 확인합니다. 서비스 상태는 SERVICE_STATUS 구조체에 저장됩니다. 서비스 상태는 다음과 같이 나열됩니다.
- SERVICE_STATUS_PROCESS: 서비스 프로세스의 상태
- SERVICE_STATUS_ACCEPT_STOP: 서비스가 중단을 수락하는지 여부
- SERVICE_STATUS_ACCEPT_PAUSE: 서비스가 일시 정지를 수락하는지 여부
- SERVICE_STATUS_CHECKPOINT: 서비스의 체크포인트 시간
- SERVICE_STATUS_CHECKPOINT_TIME: 서비스의 체크포인트 시간
- SERVICE_STATUS_CHECKPOINT_COUNT: 서비스의 체크포인트 횟수
- SERVICE_STATUS_PROCESS_ID: 서비스 프로세스의 ID
- SERVICE_STATUS_THREAD_ID: 서비스 스레드의 ID
이 함수를 사용하여 서비스의 상태를 확인할 수 있습니다.
2025-06-08 02:40