Q&A

  • 서비스 프로그램 개발 중 문제점...
서비스 프로그램을 개발 하고 있는 중입니다.
여기 저기 검색을 했어 어떻게 하는지는 기본적으로 알았습니다.

new->Service Application을 선택 해서 기본 코딩을 하면 되더군여.
그래서 지금 실행 파일을 감시 하는 WatchDog 프로그램을 만들었습니다.

Install 후 Pc를 재 부팅 후 잘 작동을 하는데 문제점은 작업 관리자를 열어
WatchDog.exe를 강제로 죽이면 Stop이 되면서 감시를 더이상 하지 않습니다.

그래서 다시 net Start WatchDog 을 도스 창에서 입력을 하면 또 감시를 시작 합니다.
그런데 이렇게 사람이 관리를 할 수 없는 상황이라 절대 죽으면 안되거든여..

어떻게 해야 작업 관리자에서 죽였을 때 Stop이 되는 이벤트를 받을 수있나여..
다 해보았지만 작업 관리자에서 죽이면 어떤 이벤트도 날아 오지 않거든여..
지발 한수 부탁 드립니다. 일주일을 밤새우면 하는데.. 정말 어렵네요.. 부탁드릴께여..홍홍
3  COMMENTS
  • Profile
    이중철 2005.02.02 22:48
    일반적으로 서비스프로그램을 만들면 프로세스에는 해당서비스는 없을텐데
    있다고 하니.. 쩝 이해가 XP이상은 서비스도 보이나요?
    일차적인 방법은 접근권한을 달리하면 될 것이고 Admin하고 일반하고 분리..
    이것도 여의치 않다면 서비스 두개 돌려서 상호 감시 하면될거에요
    감시하는 가장 좋은 방법은 이벤트로그에 592(프로세스 시작), 이벤트로그에 593(프로세스 종료)
    을 감시해서 Notify....(이름 까먹었네요) 상호 처리 하는방법
    -- 문제점 => 이벤트 설정에서 풀어버린면 말짱 꽝 ㅠㅠ
    두번째는 WMI인가요? 하여간 두서비스가를 상대편 서비스를 계속적으로 감시해서 상호 처리 하는 방법

    뭐 0.1초 사이에 두 서비스를 정지시키면 어쩔 수 없고요



  • Profile
    송준헌 2005.02.03 06:48
    제가 잘못 만들었는지 모르지만.. Xp에서 작업 관리자에 보니깐 실행 파일 명이 나오더군여... 접접. ㅜㅜ
    일단 좋은 의견 정말 감사합니다.

    서비스 프로그램 만든 방식이 밑에서도 설명을 했지만 서비스 프로그램 안에 폼을 만들고 그 폼에
    여러가지 로그 파일을 볼 수 있게 화면을 꾸미고 컴파일을 했어 실행 파일을 만들고 인스톨을 했습니다.

    그렇게 하니. 서비스 명은 당연히 작업 관리자에서 나오지 않지만.. 실행 파일 명은 나오더군여...
    그리고 그 실행 파일을 죽이면 서비스가 멈추는 것 같습니다. 왜냐면.. 다시 net Start 프로그램 명만
    하면 재 실행이 되는 것으로 보니깐여...

    혹시나 제가 뭐 실수를 한건지 한 수 더 가르쳐 주십시오.. 감사합니다.

  • Profile
    이중철 2005.02.03 20:36
    말씀하시는 것을 보면 고객이 의도적으로 죽인것이 아니군요 즉, 악의적인 목적으로 죽인 것이 아니라
    실수 또는 비의도적으로 죽인다는 뜻 이네요
    님께서는 서비스를 만들때 폼이 있으며 또한, 그것이 메인폼 이군요
    제가 팁란에 올렸듯이 폼이 있는것을 만들때는 그 것이 주 폼이 되어서는 안됩니다.
    먼저 방법론적으로 말씀 드리겠습니다.
    서비스어플을 만든다.
    서비스 어플에서 동작시키는 주모듈은 폼이 없는 클래스 이어야 한다(데이타모듈로 하시는 것이 간편)
    해당 클래스에 전역키를 설정한다. (즉, ALT-SHIFT-F1 이런식)
    전역키가 이벤트로 발생할때 로그화면을 뛰운다.
    서비스 생성일때 주 클래스를 생성한다.
    서비스 스타트일때 그 로그를 보여주는 화면이 뜨게 만든다.
    서비스 스톱일때 열려져 있는 로그를 보여주는 화면은 닫히게 한다.
    서비스 드롭일때 주 클래스를 없앤다.

    결국, 로그화면을 죽여도 서비스는 죽지 않습니다.
    그러나 로그화면이 오픈될때 해당EXE가 프로세스 리스트에 있는지 알 수 없네요
    테스트를 해보지 않아서요

    만약 프로세스 리스트에 있다면
    다른 방법이 있긴 합니다.
    로그폼 어플을 만든다.
    # UDP통신 기반으로 상호 통신한다.
    서비스어플을 만든다.
    서비스 어플에서 동작시키는 주모듈은 폼이 없는 클래스 이어야 한다(데이타모듈로 하시는 것이 간편)
    해당 클래스에 전역키를 설정한다. (즉, ALT-SHIFT-F1 이런식)
    전역키가 이벤트로 발생할때 로그폼 어플을 실행한다.
    서비스 생성일때 주 클래스를 생성한다.
    서비스 스타트일때 그 로그폼 어플을 실행한다.
    서비스 스톱일때 열려져 있는로그폼 어플을 종료한다.
    서비스 드롭일때 주 클래스를 없앤다.
    여기서 로그폼 어플이 중복으로 생성되면 안되므로 그것을 검색하는 것이 필요
    (여기 문답란에 많이 나와 있을듯)

    그럼 이만..

    • 정승욱
    • 2005.02.02 20:33
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.02 20:43
      일반적으로 아무것도 없는 빈폼일 경우 잘됩니다. Event 중에 두가지만 신경쓰면 되겠죠 OnRepaint, OnRes...
    • 정승욱
      2005.02.02 22:02
      맞습니다. OnPaint에다가 했었어야 하는건데... 해당 이벤트에서 하니 잘 되네요.
    • 김양훈
    • 2005.02.02 19:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.02.02 22:31
      전에 한번 hotmail.com 을 통해서 메일을 발송한적이 있습니다. 델마당 팁/강좌 게시판에 가서 smtp등으...
    • 오병준
    • 2005.02.02 18:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.02 20:22
      localhost는 127.0.0.1 입니다. 내부에 접속은 다음과 같이 하면 됩니다. 외부접속은 Destination ip가 ...
    • 유효근
    • 2005.02.02 11:39
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 송인화
    • 2005.02.02 05:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.02 22:04
      서버쪽 Execute에 이런식으로 바꾸어 보세요     with AThread.Connection do begi...
    • 아폴론
    • 2005.02.02 04:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정찬희
      2005.02.02 11:53
      Media.dpr 의 146번째 줄에 써있는 유닛을 따라가서 살펴보세요. 분명히 어딘가의 uses에 포함이 되어있는...
    • 송준헌
    • 2005.02.02 03:46
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.02 22:48
      일반적으로 서비스프로그램을 만들면 프로세스에는 해당서비스는 없을텐데 있다고 하니.. 쩝 이해가 XP이...
    • 송준헌
      2005.02.03 06:48
      제가 잘못 만들었는지 모르지만.. Xp에서 작업 관리자에 보니깐 실행 파일 명이 나오더군여... 접접. ㅜㅜ ...
    • 이중철
      2005.02.03 20:36
      말씀하시는 것을 보면 고객이 의도적으로 죽인것이 아니군요 즉, 악의적인 목적으로 죽인 것이 아니라 실...
    • 임동호
      2005.02.02 02:33
    • KDDG_RNStone
      2005.02.02 03:36
      AdvStringGrid를 사용하고 계신가요? 아래 이벤트에서 해당 컬럼의 속성을 Center로 설정하시면 되는데...
    • 송종효
      2005.02.02 01:15
      AdvStringGrid 에 있는 제공 되는 함수를 사용 해보세요 그리드에 체크박스 추가시    ...
    • 난 백만당적이다.
      2005.02.02 01:10
      그 팩키지에 예제가 있을 겁니다. 혹 모르니 올려드릴께요
    • 서해근
    • 2005.02.01 21:21
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 고진중
    • 2005.02.01 20:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 윤병진
      2005.02.01 23:36
      엑셀Appliction.Range['C10:C10'].FormualR1C1 = '=SUM(C8:C9)';
    • KKAW
    • 2005.02.01 19:08
    • 4 COMMENTS
    • /
    • 0 LIKES
    • sallyslaw
      2005.02.01 23:28
      SELECT * FROM TA A, TB B WHERE A.AA = B.BA    AND A.AB = SUBSTRB(B.BB, 1, 3) 위와 ...
    • 공성환
      2005.02.01 20:00
      SELECT b.*     FROM ta a, tb b   WHERE a.aa = b.ba   &nbs...
    • KKAW
      2005.02.01 20:41
      디비는 엑세스 입니다... SUBSTR은 어떤함수 인가요...? 인수들 설명도 좀 부탁드립니다... 귀찮게 해드...
    • 고진중
      2005.02.01 21:57
      s : = 'ABCDE' substr(s,1,3) = 'ABC' substr(s문자의,1번재문자부터,3개의 문자) substr(s,3,2) = ...
    • 이승민
      2005.02.02 01:17
      엑티브 엑스에 param 값으로 넘시면 될겁니다. param 값으로 가져가는 것은 엑티브엑스 관련 자료들을 ...
    • 유효근
    • 2005.02.01 10:53
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2005.02.01 22:29
      둘다.. 프로토 콜이져...^^ directshow에서는 URL Render 를 사용하신다면.. 간닿게 해결 될것 같은데....
    • 유효근
      2005.02.01 23:17
      네, ^^ 감사합니다. 지금은 그냥 공부형식으로 버튼하나를두고 Play, Stop 이것 두가지만 구현해 보고...
    • 박상윤
      2005.02.18 00:48
      Dspack를 자료실에 받아서. 해보세여 예제 두있으니...^^ 그리고.. 참고로.. directx 9 SDk 를 ...
    • 김상균
      2005.02.01 17:15
      procedure datecheck(Sender : TObject); var   temp_string : string; begin   t...
    • 이중철
      2005.02.02 20:32
      Setfocus라는 것은 TWinControl에서 상속받는 객체들은 모두 있는 것입니다. 그럼 이렇게 수정되겠죠 pro...
    • 김상균
      2005.02.01 06:10
      코딩은 많지만 이렇게 해 보세요. 좀 허접 하죠. 저도 아직 초보라..... 예) Table 명 : taxmast 이고 cod...
    • 장재영
      2005.02.01 20:30
      코드번호을 알고 있으때 지울려고 합니다. 예제 샘플 db 올리니 한번지워 보세요 (ID,PASS 없음) cod...
    • 이훈
      2005.02.01 21:08
      Code가 중복인것만 지우는건가요? 아니면 YE, MO 도 조건에 포함되어야 하는건가요? 그리고 중복된것...
    • 김정현
    • 2005.02.01 01:52
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2005.02.01 03:20
      질문을 몇번 읽어 봤습니다.. 뭘 말씀하시는건지 제가 보기에는 델파이의 IDE 사용 방법도 아직 잘 모르...
    • 김정현
      2005.02.01 18:55
      //성별     Cbo_Sex1.Clear;     Cbo_Sex1.Items.Add(''); &n...
    • 송경철
      2005.02.12 02:04
      어느 이벤트에 코딩을 했는지 잘 모를경우 소스의 윗부분에 커서를 위치시킨 후 Search - Find 옵션을 한...
    • 남경만
    • 2005.02.01 01:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이훈
      2005.02.01 09:54
      Select * From a Left Join b On a.no = b.no MS SQL과 비교 자체가 안되지만 함수 사용방법 및 함수...
    • 송경철
      2005.02.12 02:09
      참고로 MS-SQL에서는 SUBSTRING(STR,1,3) 이런식으로 쓰지만        ...
    • 김현철
    • 2005.02.01 00:09
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 난 백만당적이다.
      2005.02.01 00:18
      KeyDown Event에서 if key = RK_RETURN then begin    key := 0;    //계산.....
    • 김현철
      2005.02.01 00:38
      이렇게 하면 엔터 키로 넘어 갈땐 이벤트가 일어나지만 방향키나 바우스로 다른 셀을 클릭하면 계산 루틴...
    • 난 백만당적이다.
      2005.02.01 18:30
      방향키에 대한것은 VK_RETURN 처럼 VK_UP, VK_DONW 을 사용하면 될거구요... 마우스는 클릭전 Col, ...
    • 김현철
      2005.02.01 22:28
      감사합니다....
    • 이순홍
    • 2005.01.31 22:52
    • 0 COMMENTS
    • /
    • 0 LIKES