JBoss EAP 7.2를 Windows 서비스로 등록하여 시스템 부팅 시 자동으로 실행되도록 설정합니다. Apache Jsvc를 활용한 서비스 등록 방법, 멀티 인스턴스 구성을 위한 포트 오프셋(Port Offset) 설정, 그리고 특수문자 패스워드 처리 팁을 정리합니다.
0. 사전 준비 (Prerequisites)
JBoss EAP 7부터는 서비스 등록을 위해 JBoss Core Services (JBCS) - Apache Jsvc 패키지가 필요할 수 있습니다. Red Hat 포털에서 해당 바이너리를 다운로드하여 준비합니다.
필수 다운로드 및 환경 변수
- JBoss EAP 7.2: 설치 파일 압축 해제
- Apache Jsvc: Windows용 바이너리 (sbin 폴더 내
prunsrv.exe등 포함) - 환경 변수:
JAVA_HOME: JDK 설치 경로NOPAUSE=1: 서비스 종료 시 배치 파일이 멈추지 않도록 필수 설정
1. 단일 인스턴스 서비스 등록
기본적으로 제공되는 service.bat 스크립트를 사용하여 서비스를 등록합니다.
등록 명령어
아래 명령어를 관리자 권한 CMD 창에서 실행합니다. 로그 경로(/logpath)는 미리 생성되어 있어야 합니다.
:: JBoss bin 디렉토리로 이동
cd %JBOSS_HOME%\bin
:: 서비스 등록 실행
service.bat install /name "JBoss7-Server01" ^
/controller "localhost:9990" ^
/config "standalone-ha.xml" ^
/jbossuser "admin" ^
/jbosspass "admin1@34" ^
/logpath "E:\app\Redhat\waslog\testsvr01"
비밀번호에
&, <, >, | 등의 특수문자가 포함된 경우 CMD 창에서 오류가 발생할 수 있습니다. 가능한 경우 특수문자를 피하거나, 쌍따옴표(")로 감싸고 이스케이프 문자(^)를 사용하는 등 주의가 필요합니다.
2. 멀티 인스턴스(Multi-Instance) 구성
하나의 장비에 여러 개의 JBoss 서비스를 등록할 때는 서비스 이름, 포트, 로그 경로가 겹치지 않아야 합니다.
Step 1: Port Offset 설정 (XML 수정)
service.bat의 파라미터로 포트 오프셋을 넘기는 것이 불안정할 수 있으므로, 설정 파일(standalone.xml) 자체를 수정하는 것을 권장합니다.
<socket-binding-group name="standard-sockets" default-interface="public"
port-offset="${jboss.socket.binding.port-offset:100}">
</socket-binding-group>
Step 2: Jsvc 경로 수정 (필요 시)
멀티 인스턴스 환경에서 각 서버별로 다른 Jsvc 바이너리를 사용해야 하거나 경로가 특수한 경우, service.bat 파일을 열어 PRUNSRV 경로를 수동으로 지정해야 할 수 있습니다.
rem service.bat 파일 편집
set PRUNSRV=
rem 커스텀 경로 우선 확인 로직 예시
if exist "%JBOSS_HOME%\..\test01-jbcs-jsvc-1.1\sbin\prunsrv.exe" (
set PRUNSRV="%JBOSS_HOME%\..\test01-jbcs-jsvc-1.1\sbin\prunsrv.exe"
) else if exist "%JBOSS_HOME%\bin\prunsrv.exe" (
set PRUNSRV="%JBOSS_HOME%\bin\prunsrv.exe"
) else (
echo Please install native utilities into expected location...
goto cmdEnd
)
Step 3: 추가 인스턴스 등록
서비스 이름과 컨트롤러 포트, 로그 경로를 변경하여 등록합니다.
service.bat install /name "JBoss7-Server02" ^
/controller "localhost:10090" ^
/config "standalone-ha.xml" ^
/jbossuser "admin" ^
/jbosspass "admin1@34" ^
/logpath "E:\app\Redhat\waslog\testsvr02"
3. 서비스 제어 및 삭제
등록된 서비스는 Windows 서비스 관리자(services.msc) 또는 명령어로 제어할 수 있습니다.
서비스 삭제 (Uninstall)
설정을 변경하거나 재등록할 경우 기존 서비스를 삭제해야 합니다. /name 옵션에 등록했던 서비스명을 정확히 입력합니다.
:: 서비스 중지
sc stop JBoss7-Server01
:: 서비스 삭제 (service.bat 이용)
service.bat uninstall /name "JBoss7-Server01"
4. 검증 (Verification)
- 서비스 실행:
net start JBoss7-Server01 - 포트 확인:
netstat -an | findstr "9990"(또는 오프셋이 적용된 포트) - 로그 확인: 지정한
/logpath경로에 로그 파일이 생성되는지 확인합니다.