본문 바로가기

운동하는 개발자/Windows

윈도우10 윈도우 시작시 서비스시작 안됨 / 윈도우 빠른시작 / windows service Onstart not work

728x90

우선 빠른시작에 대한 간단한 설명

말그대로 부팅을 빠르게 도와주도록 하는 기능이며 마지막 상태를 저장해 두었다가 부팅시 그 상태를 읽어와서 부팅을 빠르게 해주는 기능인데 이로 인해 생긴 문제가 있었다(윈도우 재시작시에는 적용되지않는다)

빠른시작 관련 추가 잡담

더보기

옛날 윈도우 95,~98 이런시절에 피시는 부팅눌러놓고 화장실을 다녀오든 뭘 해야 할 정도로 부팅시간이 제법 걸렸다 (그래서 특히 주로 학교갔따와서 집에오면 제일먼저 하던건 컴터 전원버튼누르기 였었다)

이후 윈7이 나오고 ssd가 나오면서 부팅이 거의 누르면 바로 켜지는 속도까지 왔다 아무리 늦어도 1분을 넘진 않는다

그런데 이러한 상황에서 굳이 빠른시작기능이 왜 필요했던걸까..?

필자의 회사 PC기준으로 이 기능을 사용하고 사용하지않고 속도는 약간은 체감이 되지만 몇초 차이 정도 더 나는것이기에 설정을 누가 몰래바꿔놓더라도 알기 힘들꺼 같다 

왜 만들어서 개발자들을 괴롭히시나이까 MS여.. 

윈도우10에서 제어판 -> 전원옵션 -> 전원 단추 작동 설정(심지어 디폴트가 사용)

여기서 문제란 윈도우 시작시 자동으로 동작하는 등록된 서비스가 재시작을 하지 않는것이다

서비스 관련 모든 이벤트를 오버라이딩해서 로그를 넣어놓고 시스템종료, 시작을 해본결과
onStop, OnStart, OnPause, OnShutdown, OnDestory, OnContinue 그 어느 이벤트도 발생하지 않았다

단지 그냥 멈춘것처럼 로그가 끊겨있다가 윈도우가 다시 부팅되면서 멈춰있던게 돌아가듯 자연스럽게 이어 동작했다
다행히 회사 솔루션 서비스내부에서는 통신이 끊어진것을 다시 연결하고 동작하는 로직들이 있어 큰 이슈는 없었으나
윈도우 시작, 종료시 특정동작을 하게 기능을 넣는과정이 불가능했다

결국 고객들의 PC를 일일이 이 설정을 해지하라 할 수도 없고 어쩔 수 없이 주기적으로 도는 메인스레드에서 마지막 동작 시간을 저장해두고 다음번 회전때 이전번 동작시간과 현재시간을 비교하여 10분이상 차이가 나면 이것은 시스템종료 후 다시 시작한 환경이다 라고 판단하도록 처리하였다

왜 분명 윈도우 시스템종료를 하는데도 각종 서비스 종료,시작 이벤트들이 발생하지 않는지 그리고 어떻게 대응하는것이 좋을지 정보공유를 위해 기록해 본다


틀린내용이나 질문은 답글로 달아주세요

728x90