jsp 를 이용한 로직, 또는 windows 의 tasklist 나, unix/linux의 ps 를 이용할 수도 있다.
private static boolean checkRunningJarProcesses(String checkProcess) {
boolean jarProcessFound = false;
if(checkProcess == null) {
return jarProcessFound;
}
checkProcess = checkProcess.trim();
// 환경설정. 1) JAVA_HOME 정의하고, 2) path에 %JAVA_HOME%\bin 추가할 것.
String command = "jps";
String line;
Process process = null;
try {
process = new ProcessBuilder(command).start();
logger.debug("Checking for running JAR processes...");
try(BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
while ((line = reader.readLine()) != null) {
// "java -jar"가 포함된 프로세스를 찾음
String[] columns = line.split(" "); // 1: pid, 2: process
if (columns.length > 1 && checkProcess.equalsIgnoreCase(columns[1])) {
logger.debug("Found JAR process: " + line);
jarProcessFound = true;
}
}
}
// int returnCode = process.waitFor();
// logger.debug("returnCode: {}", returnCode);
} catch (IOException e) {
logger.error(e.toString());
} finally {
if(process != null) {
process.destroy();
}
}
return jarProcessFound;
}
end.
728x90
'Programming Language > Java' 카테고리의 다른 글
cmd script - jar application 이 미실행 중일 때만, start 수행 (0) | 2024.11.11 |
---|---|
java application - start cmd / stop cmd (1) | 2024.11.09 |
logback 명에 따른 config 재설정 로직 (not Spring) (1) | 2024.11.07 |
G1 GC에서는 Full GC는 잘 안일어난다 (0) | 2023.08.05 |
csv 파일 생성 예제. (추가 라이브러리 없이) (0) | 2023.07.27 |