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
