Java - 백그라운드 실행


java 프로세스 백그라운드 실행

java로 작성한 클래스를 실행시키기 위해 아래와 같이 bat 파일을 작성하였는데요..

@echo off
set WORK_PATH=D:SWPINPOINTbin
set CLASSPATH=D:SWPINPOINTlibcommons-configuration-1.10.jar;~~~~생략~~~~

d:
cd %WORK_PATH%
java -classpath %CLASSPATH% -Xms128m -Xmx256m pinpoint.control.ControlDaemon

백그라운드로 실행하기 위해 "start /B"를 추가하였습니다.

@echo off
set WORK_PATH=D:SWPINPOINTbin
set CLASSPATH=D:SWPINPOINTlibcommons-configuration-1.10.jar;~~~~생략~~~~

d:
cd %WORK_PATH%
start /B java -classpath %CLASSPATH% -Xms128m -Xmx256m pinpoint.control.ControlDaemon

근데.. 프로세스를 살펴보면 Java로만 표시되어 있어서 모니터링하기 힘들더군요.
여러가지 방법이 있겠지만.. javaw.exe 파일을 원하는 파일명(아래 예제에서는 PP_CTRD.exe)으로 변경하여 이것으로 실행하면 됩니다.

@echo off
set WORK_PATH=D:SWPINPOINTbin
set CLASSPATH=D:SWPINPOINTlibcommons-configuration-1.10.jar;~~~~생략~~~~

d:
cd %WORK_PATH%
start /B D:SWPINPOINTbatjavawPP_CTRD.exe -classpath %CLASSPATH% -Xms128m -Xmx256m pinpoint.control.ControlDaemon

프로세스 실행  조회

모니터링을 위해서는 tasklist 명령을 사용하면 간단합니다.

@echo off
tasklist /fi "imagename eq PP_*"
echo.
echo.
pause

프로세스 종료

프로세스를 종료하기 위해서는 taskkill을 사용합니다.

@echo off

:LOOP
set /p YN=STOP CTRD (Y/N)?
if /i "%YN%" == "y" goto KILL
if /i "%YN%" == "Y" goto KILL
if /i "%YN%" == "n" goto QUIT
if /i "%YN%" == "N" goto QUIT
goto LOOP

:KILL
taskkill /f /im PP_CTRD.exe

:QUIT

 

 

광고

댓글 남기기