페이지

2016년 4월 1일 금요일

pvbrowser 서버 백그라운드 실행

pvbrowser 서버를 백그라운드에서 실행하고 싶다.

무엇을 잘못 해서 인지는 몰라도 백그라운드 실행이 아음대로 되지않는다.
pvbrowser에서 공식적으로 제시하는 방법은

  •  pvservice
  •  pcontrol

여기다 start_pvapp 을 이용하여 할 수 있을 것 같은데

 우선 pvservice 사용법을 잘 모르겠다. 윈도우에서 공식적으로 지원해 주는 프로그램을 이용해서 하는 것 같은데 머리 용량이 딸려서 몇번 시도하다 포기.
pcontrol 도 시도하다 포기.
.
.
.OTL
.
.
start_pvapp을 이용하여 서버를 돌리고 pvbrowser에서 작동하는 것 까지는 확인했는 데, 이상하게 재접속하면 되지 않는다.

그래서 윈도우 OS 에서 서비스 등록하는 방법을 검색하다, 발견한 것이

NSSM - the Non-sucking Service Manager

이 프로그램을 이용하여 윈도우 서비스를 등록하니 잘 된다. modbusdaemon도 서비스 등록이 된다. 더 좋은 것은 부팅 단계부터자동실행하게 할 수 있다.

바로 내가 찾던 프로그램....그럼 한번 사용해 보자


NSSM 홈페이지에서 압축파일 다운로드 한 후, 압축을 풀면 소스, 32비트, 64비트 폴더가 생성된다. 자신의 OS에 따라 실행하면 된다.설치도 필요 없다.

단 조심하자.
event log message를 nssm 프로그램이 사용하기 때문에 다른 위치에서 실행하던가. 버전이 다른 것을 사용하면 충돌이 발생할 수 있다고... 설명되어 있다.
동일 폴더에서 nssm을 실행시키면 문제가 없는 것 같다.

기본적으로 도스 모드에서 동작하는 프로그램으로 홈페이지에서 설명한 방법으로 서비스 등록하면 NSSM 설정창이 나타나는 데, 설정창에서 필요한 설정을 하면 서비스 등록이 된다.
서비스 등록, 시작, 정지, 제거와 같은 것들은 CMD 창에서(관리자 권한으로) 수행하여야 한다.

1.서비스 등록 (install)

nssm install <servicename>

서비스이름을 pvs로 지정하고 실행해 보았다.

그림 1. NSSM

그림2. NSSM install 실행화면

다음과 같은 Tab으로 구성되어 있다.
  • Application
  • Details
  • Log on
  • Dependencies
  • Process
  • Shutdown
  • Exit actions
  • I/O
  • File rotation
  • Environment


Application Tab에서 프로그램을 등록하면 된다.

그림 3.application 설정
  • Path
    실행파일의 전체 경로를 적어준다.
    본인의 경우 프로젝트/release 폴더에 생성된 실행파일을 지정해준다.
  • Startup directory
    실행파일이 실행될 디렉토리를 적어준다
    본인의 경우 프로젝트 폴더를 지정해준다. 서버 프로그램 개발시 사용하는 파일들이 프로젝트 폴더에 있기 때문. 예)SVG,....
  • Arguments
    서버 실행시 필요한 인자들을 적어준다.
    예) -port=5050

Detail 탭에서는 서비스 창에 나타날 정보들을 입력한다.
이 탭에서 중요한 것은 startup_type이다. 컴퓨터 부팅 단계부터 실행하고 싶으면 Automatic을 설정하면 된다. 본인의 경우 manual을 선호한다.

그림 4.Detail 탭

  • Display name
    서비스에 나타나는 이름을 적어 준다
  • Description
    서비스에 나타나는 설명을 적어준다.
  • Startup_type
     Automatic
     Automatic ( Delayed Start)
     Manual
     Disabled

Dependences 탭은 이 서비스를 실행하기 위해 함께 실행하여야 되는 서비스를 넣어준다.
함께 실행하고자하는 서비스 역시 서비스로 등록되어 있어야 한다.
본인의 경우 modbusdaemon도 함께 실행하고 싶기 때문에 pvsModbus라는 서비스를 등록한후 dependences 탭에 넣어 주었다.

그림 5. Dependences 탭


이 정도만 설정하고 Install Service 버튼을 누르면 서비스에 등록된다.
등록된 서비스는  윈도우 서비스 매니저에서 확인하면 된다. 수동으로 서비스를 등록한 경우 서비스 매니저에서 시작 혹은 정지할 수 있다.

그림 6. 윈도우 서비스 매니저

 서비스 매니저 이름 항목에 나타나는 것이 Displayname, 설명 항목에 나타나는 것이 Description 항목이다. 본인이 보기 쉬운 것(확인하기 쉬운 것)으로 써주면 된다.

너무 간단하게 설명해서 죄송.
NSSM 홈페이지 메뉴얼에 너무 자세하게 설명되어 있어 통과합니다.

저는 배치파일로 만들어사용합니다.




참조만 하시기 바랍니다.
batch쪽은 거의 사용하지 못합니다.

여하튼 가장 많이 쓴 명령어를 한번살펴보죠.

  • nssm install <servicename>
    서비스 등록
  • nssm start <servicename>
    등록된 서비스 시작
  • nssm stop <servicename>
    등록된 서비스 정지
  • nssm remove <servicename>
    등록된 서비스 제거
  • nssm set <servicename> <parameter> <subparameter>
    서비스 항목 편집
    사용 예)
    nssm set pvs AppDirectory c:\...\...
    서비스로 사용하고 싶은 프로그램의 디폴트 디렉토리
    .<parameter>에 대한 자세한 내용은 nssm 홈페이지 메뉴얼 참조
  • nssm edit <servicename>
    서비스 항목은 이 명령을 이용하면 보다 쉽게 할 수 있습니다.
    GUI 창이 나타나니까.

여하튼 배치로 만들어 사용하니 매우 편리합니다.

댓글 없음:

댓글 쓰기