윈도우가 설치된 피시에 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
반응형
'OS' 카테고리의 다른 글
[리눅스] Linux 자주 쓰면서 유용한 명령어 모음! (0) | 2023.07.13 |
---|---|
Linux / Redhat - 방화벽(firewall) 포트 목록 조회, 추가 (0) | 2023.06.30 |
Chocolatey, 윈도우 패키지 매니저! 이제 윈도우에서도 apt, brew 처럼 쉽게 패키지를 관리하자 (0) | 2023.04.17 |
MacOS - JAVA_HOME 환경설정 추가 및 JDK 버전 변경( zsh, bash 구분 ) (0) | 2022.01.04 |