본문 바로가기
공부

WinSW 설정 매뉴얼 번역

by 최혜초 2020. 9. 22.

1. 필수옵션

<id>myapp</id>                      (서비스의 ID입니다. Windows 내에서 고유한 이름이어야 합니다.)

<name>MyApp Service</name>                     (표시되는 서비스의 이름입니다.)

<description>This service</description>                                                  (서비스 설명입니다.)

<executable>%BASE%\myExecutable.exe</executable>                        (실행파일의 경로입니다.)

 

2.   설치

이 옵션은 설치에만 사용됩니다. 서비스 재설치 없이는 수정 내용이 영향을 받지 않습니다.

 

2-1 serviceaccount

 

<serviceaccount>

<domain>YOURDOMAIN</domain>

<user>useraccount</user>

<password>Pa55w0rd</password>

<allowservicelogon>true</allowservicelogon>

</serviceaccount>

 


서비스를 실행할 계정을 정의합니다.

 

2-2 onfailure

실패 시 작업 순서를 정의합니다. 관리되는 실행 파일이 실패할 경우 수행될 기능입니다.

 

<onfailure action="restart" delay="10 sec"/>

<onfailure action="restart" delay="20 sec"/>

<onfailure action="reboot" />


지원되는 작업: restart, reboot, none

2-3 resetfailure

윈도우 서비스 failurereset 하는 빈도를 설정합니다.

기본값 : 1 day

 

 

<resetfailure>1 hour</resetfailure>

 



 

 

2.   실행 파일 관리

 

3-1 arguments

실행파일로 전달되어야 하는 인수를 설정합니다.

 

 

<arguments>-classpath c:\cygwin\home\ws\hello-world test.Main</arguments>

 

 

 

3-2 startarguments

시작 시 실행 파일로 전달될 인수를 설정합니다. 이미 지정된 경우 재정의 합니다.

 

 

<startarguments></startarguments>

 

 

 

3-3 workingdirectory

실행파일의 기본 작업경로를 설정합니다. 기본 값 : 서비스 wrapper 파일의 경로

 

 

<workingdirectory>C:\myApp\work</workingdirectory>

 

 

 

 

 

 

 

 

 

 

 

 

 

3-4 priority

프로세스의 우선순위를 설정합니다.

지원하는 값 : Normal, Idle, High, RealTime, BelowNormal, AboveNormal

기본 값 : Normal

 

<priority>Normal</priority>

 

 

3-5 stoptimeout

강제로 kill하기 전 실행 파일을 정상적으로 종료할 때까지 기다릴 시간을 설정합니다.

기본값 : 15

 

<stoptimeout>15 sec</stoptimeout>

 

 

3-6 stopparentprocessfirst

자식 프로세스를 종료하기 전 부모 프로세스 종료 여부를 설정합니다.

기본값 : false

 

<stopparentprocessfirst>false</stopparentprocessfirst>

 

 

 

 

 

3-7 stopexecutable

서비스 종료를 수행하는 실행파일의 경로를 설정합니다.

이 실행 파일은 'stoparguations'가 지정된 경우에만 사용됩니다.

이 옵션 없이 'stoparguations'가 정의된 경우 'execable'이 종료 파일로 사용됩니다.

 

<stopexecutable>%BASE%\stop.exe</stopexecutable>

 

 

3-8 stoparguments

종료 중 실행 중지 실행 파일로 전달되어야 하는 추가 인수입니다.

또한 이 옵션을 사용하면 실행 중지 파일을 통해 실행 파일을 종료할 수 있습니다.

 

 

<stoparguments>-stop true</stoparguments>

 



 

 

3.   서비스 관리

4-1 startmode

서비스의 시작모드를 정의합니다.

지원가능모드 : Automatic, Manual, Boot, System

                                                        (System은 드라이버 서비스용으로만 지원됩니다.)

기본모드 : Automatic

 

 

<startmode>Automatic</startmode>

 

 

 

4-2 delayed/AutoStart

'startmode' 필드에 'Automatic'이 지정된 경우 지연된 자동 시작을 활성화합니다.

지원되는 플랫폼 버전 및 제한 사항에 대한 자세한 내용은 WinSW 설명서를 참조하십시오.

 

 

<delayedAutoStart/>

 

 

 

4-3 depend

이 서비스가 시작되기 전에 시작해야 하는 서비스를 지정합니다.

 

<depend>Eventlog</depend>

<depend>W32Time</depend>

 

 

 

 

 

 

4-4 waithint

중지 보류 작업에 필요한 예상 시간입니다. 지정된 시간이 경과하기 전에 서비스에서 SetServiceStatus 함수를 호출해야 합니다. 그렇지 않으면 서비스가 응답하지 않는 것으로 표시됩니다.

기본값 :15

 

 

<waithint>15 sec</waithint>

 

 

 

4-5 sleeptime

서비스가 SetServiceStatus 함수를 호출하고 다음 호출을 수행하기 전 시간입니다.

예상되는 대기시간보다 오래 기다리지 않아도 됩니다. 예상 대기 시간의 10분의 1이 권장되지만 1초 이상 10초 이어야만 합니다.

기본값 : 1

 

<sleeptime>1 sec</sleeptime>

 

 

4-6 interactive

데스크탑과 상호 작용 여부를 나타냅니다.

 

<interactive/>

 

 

 

 

 

 

 

4.   로깅

5-1 logpath

service wrapper 에서 생성할 모든 로그에 대한 사용자 지정 로그 디렉토리를 설정합니다.

기본값 : 실행파일이 있는 디렉토리

 

<logpath>%BASE%\logs</logpath>

 

 

5-2 log mode

실행 파일이 생성한 로그에 대한 로깅 모드를 정의합니다.

지원되는 모드

* append - 기존 로그 갱신

* none - 로그를 디스크에 저장 안 함

* reset - 시작할 때 로그 파일 지우기

* roll - 크기에 따라 교체

* roll-by-time - 시간을 기준으로 로그 교체

* rotate - 크기, 로그 8, 각각 10MB를 기준으로 로그를 교체합니다. 이 모드는 더 이상 사용되지 않습니다. "roll"을 사용하십시오.

기본 설정: append

 

<log mode="append">

<setting1/>

<setting2/>

</log>



 

*모드설정 방법

 

Winsw는 시작하는 프로세스에서 stdout stderr를 캡처하는 여러 가지 방법을 지원합니다.

 

Log directory

<logpath> 요소는 로그 파일이 생성되는 디렉터리를 지정합니다. 이 요소가 없으면 구성 파일이 있는 동일한 디렉터리로 기본 설정됩니다.

 

Append mode (default)

이 모드에서는 myapp.out.log myapp.err.log(여기서 myapp는 실행 파일의 기본 이름 및 구성 파일)가 생성되고 출력이 이러한 파일에 추가됩니다. 파일 크기가 상당히 커질 수 있습니다.

 

<log mode="append"/>

 

Reset mode

서비스가 시작될 때마다 이전 로그 파일이 잘리는 것을 제외하고 추가 모드와 유사합니다.

 

<log mode="reset"/>

 

Ignore mode

로그파일을 생성하지 않습니다.

<log mode="none"/>

 

Rotate mode

add 모드처럼 작동하지만 로그 파일이 설정된 크기보다 커지면 myapp.1.out.log, myapp.2.out.log 등으로 추가생성 됩니다.

<sizeThreshold>는 로그파일의 용량을 KB(기본값: 10MB)로 지정하고 <keepFiles>는 유지할 로그 파일 수를 지정합니다(기본값: 8).

 

<log mode="roll-by-size">

<sizeThreshold>10240</sizeThreshold>

<keepFiles>8</keepFiles>

</log>

 

 

 

 

Rotate by time mode

크기를 임계값으로 사용하는 대신 기간을 임계값으로 사용하는 것을 제외하고 rotate 모드와 유사합니다. 이 구성은 로그 파일 이름으로 사용되는 타임스탬프 패턴을 지정하는 <pattern> 속성을 동반해야 합니다. 패턴 문자열의 구문은 DateTime으로 지정됩니다. 예를 들어 아래의 예에서 201311일의 로그는 myapp.20130101.out.log myapp.20130101.er.log에 기록됩니다.

 

<log mode="roll-by-time">

<pattern>yyyyMMdd</pattern>

</log>

 

Rotate by size and time mode

크기 rotate 모드와 시간 rotate 모드의 조합으로 작동하며, 로그 파일이 설정된 크기보다 커지면 제공된 [Pattern]을 사용하여 새로운 로그파일을 작성합니다.

 

<log mode="roll-by-size-time">

<sizeThreshold>10240</sizeThreshold>

<pattern>yyyyMMdd</pattern>

<autoRollAtTime>00:00:00</autoRollAtTime>

<zipOlderThanNumDays>5</zipOlderThanNumDays>

<zipDateFormat>yyyyMM</zipDateFormat>

</log>

 

패턴 문자열의 구문은 DateTime으로 지정됩니다. 예를 들어 위의 예에서 201311일의 로그는 myapp.20130101.out.log myapp.20130101.er.log에 기록됩니다. autoRollAtTime의 구문은 TimeSpan에 의해 지정됩니다. 예를 들어, 위의 예제에서는 파일을 처음부터 롤오버합니다.

 

zipOlderThanNumDaysautoRollAtTime과 함께 사용할 수 있으며 보관할 파일의 일수를 제공합니다.

 

<log mode="roll-by-size-time">

<autoRollAtTime>00:00:00</autoRollAtTime>

<zipOlderThanNumDays>5</zipOlderThanNumDays>

</log>

 

zipDateFormatautoRollAtTime의 추측에만 사용할 수 있으며 DateTime을 사용하여 zip 파일 형식을 제공합니다.

<log mode="roll-by-size-time">

<autoRollAtTime>00:00:00</autoRollAtTime>

<zipDateFormat>yyyyMM</zipDateFormat>

</log>

 

Error reporting

Winsw는 아래의 WMI를 사용하므로 오류 코드를 종료 코드로 사용합니다. 종료 코드의 전체 목록은 Win32_Service 클래스의 MSDN 문서 작성 방법을 참조하십시오. winw가 서비스로 실행되면 보다 자세한 오류 정보가 Windows 이벤트 로그에 보고됩니다.

 

 

 

 

 

zipDateFormatautoRollAtTime의 추측에만 사용할 수 있으며 DateTime을 사용하여 zip 파일 형식을 제공합니다.

<log mode="roll-by-size-time">

<autoRollAtTime>00:00:00</autoRollAtTime>

<zipDateFormat>yyyyMM</zipDateFormat>

</log>

 

Error reporting

Winsw는 아래의 WMI를 사용하므로 오류 코드를 종료 코드로 사용합니다. 종료 코드의 전체 목록은 Win32_Service 클래스의 MSDN 문서 작성 방법을 참조하십시오. winw가 서비스로 실행되면 보다 자세한 오류 정보가 Windows 이벤트 로그에 보고됩니다.

 



 

 

5.   환경 변수

6-1 env

환경 변수를 설정하거나 재정의합니다. 최상위 수준에 여러 항목이 구성될 수 있습니다.

 

<env name="MY_TOOL_HOME" value="C:\etc\tools\myTool" />

<env name="LM_LICENSE_FILE" value="host1;host2" />

 

 

6-2 download

시작하기 전에 wrapper 가 수행할 다운로드 목록

 

 

<download from="http://www.google.com/" to="%BASE%\index.html" />

오류 시 서비스 시작 다운로드 및 실패:

<download from="http://www.nosuchhostexists.com/" to="%BASE%\dummy.html" failOnError="true"/>

 

연결이 암호화되지 않아 보안되지 않는 기본 인증의 예:

<download from="http://example.com/some.dat" to="%BASE%\some.dat"

auth="basic" unsecureAuth=“true”

username="aUser" password=“aPassw0rd" />

Secure Basic authentication via HTTPS:

<download from="https://example.com/some.dat" to="%BASE%\some.dat"

auth="basic" username="aUser" password="aPassw0rd" />

 

대상 서버와 클라이언트가 동일한 도메인 또는 서버 도메인의 구성원이고 클라이언트 도메인이 트러스트를 가진 동일한 포리스트에 속하는 경우 보안 인증:

<download from="https://example.com/some.dat" to="%BASE%\some.dat" auth="sspi" />

 

 

 

6.   기타

7-1 beeponshutdown

종료 시 서비스 신호음이 여부를 나타냅니다(OS에서 지원하는 경우).

 

 

<beeponshutdown/>

 



 

 

7.    확장

이 구성 섹션에서는 사용자 지정 확장을 지정할 수 있습니다.

자세한 내용은 여기를 참조하십시오.:

https://github.com/kohsuke/winsw/blob/master/doc/extensions/extensions.md

 

<extensions>

Extension 1: id values must be unique

<extension enabled="true" id="extension1" className="winsw.Plugins.SharedDirectoryMapper.SharedDirectoryMapper">

<mapping>

<map enabled="false" label="N:" uncpath="\\UNC"/>

<map enabled="false" label="M:" uncpath="\\UNC2"/>

</mapping>

</extension>

...

</extensions>

 

 

 

'공부' 카테고리의 다른 글

Dart 공부  (0) 2023.04.04