#!/bin/bash
# 런처용 .sh 파일은 755 권한을 주어야 합니다. (명령어 : chmod)
# java 실행 경로가 맞는지 확인하시기 바랍니다. (명령어 which java)

APP_NAME="특별관리지역 통행제한 과태료 시스템"
APP_HOME=/applications/fims
APP_WAR=fims-chongno.war

JAVA_HOME=/usr/local/java/zulu17.54.21

if [ $# == 0 ]
	then echo "옵션을 지정하세요: 쉘파일명.sh [start | stop | list]"; exit;
fi

# 쉘이 csh 일 경우 문법 : setenv LANG ko_KR.utf8
# 쉘이 bash 일 경우 문법 : export LANG=ko_KR.utf8
# 운영체제가 AIX일 경우 ko_KR.utf8가 아닌 ko_KR.IBM-utf8로 설정 
export LANG=ko_KR.utf8

# 위의 LANG을 설정하여도 한글이 셋팅되지 않을 때 아래 LC_ALL 주석을 해제하여 기동하세요
#export LC_ALL=ko_KR.euckr
#export LC_ALL=ko_KR.utf8

# 디렉토리 이동
cd "$APP_HOME"

# 커맨드라인 옵션별 분기
case "$1" in

	[Ss]tart)
		echo "$APP_NAME 프로세스를 시작합니다."

		app_process=$(ps -ef | grep "$APP_WAR" | grep -v grep | wc -l)

		if [ "$app_process" -gt 0 ]

		then
			echo "$APP_NAME 프로세스가 이미 기동 중입니다."
		else
		{
			cd "$APP_HOME" || exit
			rm logs/*.log
			nohup "$JAVA_HOME/bin/java" -Dspring.profiles.active=dev -jar "$APP_HOME/$APP_WAR" > /dev/null &
			echo "$APP_NAME 프로세스가 시작되었습니다."
		}
		fi

		cd "$APP_HOME" || exit
	;;

	[Ss]top)
		echo "$APP_NAME 프로세스를 종료합니다."

		app_process=$(ps -ef | grep "$APP_HOME/$APP_WAR" | grep -v grep | wc -l)

		if [ "$app_process" -gt 0 ]
		then
		{
			kill_pid=$(ps -ef | grep "$APP_HOME/$APP_WAR" | grep -v grep | awk '{print $2}')
			kill "$kill_pid";
			echo "$APP_NAME 프로세스가 종료되었습니다."
		}
		fi
	;;

	[Ll]ist)
		echo "PID		PPID		STIME			COMMAND"
		for proc_name in $APP_WAR
		do
      ps -ef | grep "$proc_name" | grep -v grep | grep -v awk | sort
		done
	;;

esac
