본문 바로가기
OS

Windows에서 bat파일로 FatJar 실행 및 중지하기

by 맑은안개 2022. 8. 19.

from Pixabay

윈도우가 설치된 피시에 SpringBoot기반의 간단한 데몬프로그램을 실행시켜야 했다. 배치파일로 FatJar파일을 실행시켰다. 문제는 실행시킨 프로세스의 프로세스아이디를 무엇으로 확인하여 종료시킬 것인가 였다.

 

여러가지 방법이 있지만, 여기서는 윈도우 커맨드 명령어 중, START의 옵션 중 하나인 제목 옵션을 사용하였다.

1. start.bat

@echo off
set JAR_PATH=C:\your\lib\path

start "testapp" java -jar -Xms64m -Xmx128m -Dspring.profiles.active=dev %JAR_PATH%\app.jar

첫 번째 인자 값으로 앱의 이름("testapp")을 지정하면 필터 옵션(/fi)으로 접근할 수 있다. 

2. tasklist로 process 확인

tasklist /fi "windowtitle eq testapp"

이미지 이름                    PID 세션 이름              세션#  메모리 사용
========================= ======== ================ =========== ============
java.exe                      1580 Console                    1    154,048 K

필터 옵션으로 프로세스아이디 조회 ( 복수가 나오지 않아야 한다. )

3. stop.bat

tasklist에서 확인한 바와 같이 taskkill을 사용하여 동일하게 해당 프로세스로 접근, 작업을 종료시킨다.

taskkill /fi "windowtitle eq testapp"
  • 실행된 창이 종료되는 것을 확인한다.
  • tasklist명령으로 프로세스가 종료되었는지 확인한다.

위 방법 외 고려할 수 있는 방법(Java실행 한정)

jps

  • jps도구를 사용한다. jps는 jvm에서 실행중인 모든 프로세스를 확인 할 수 있다.
  • 실행된 jar파일명으로 pid를 찾을수 있다.
```
$ jps
13952 GradleDaemon
19104 Jps
10964 BootLanguageServerBootApp
16932 gradle-language-server.jar
1580 testapp-1.0.0.jar
6556 GradleServer
```
$ jps |findstr testapp
1580 testapp-1.0.0.jar
반응형