Java – 백그라운드 실행

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

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

@echo off
set WORK_PATH=D:\SW\PINPOINT\bin
set CLASSPATH=D:\SW\PINPOINT\lib\commons-configuration-1.10.jar;~~~~생략~~~~

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

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

@echo off
set WORK_PATH=D:\SW\PINPOINT\bin
set CLASSPATH=D:\SW\PINPOINT\lib\commons-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:\SW\PINPOINT\bin
set CLASSPATH=D:\SW\PINPOINT\lib\commons-configuration-1.10.jar;~~~~생략~~~~

d:
cd %WORK_PATH%
start /B D:\SW\PINPOINT\bat\javaw\PP_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

 

 

Notice

  • 이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스
  • 저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.
  • 댓글에 대한 답변은 늦을 수도 있습니다.
  • 답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다