#!/bin/bash
MEM=`free -m | grep Mem | awk ‘{print int($2 * 90 / 100)}‘`
JAVA_OPTS="-server \
-Xmx${MEM}m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=4"APP_HOME=`dirname $(pwd)`
APP_JAR_NAME="idfa.web-1.0.jar"PID_FILE="$APP_HOME/pid.file"pid=0commond="$JAVA_OPTS -jar $APP_HOME/libs/$APP_JAR_NAME"#commond="nohup java -jar $APP_HOME/libs/$APP_JAR_NAME 1 >> $APP_HOME/nohup.log 2>&1 &"getpid() {if [ -f "${PID_FILE}"]; then
pid=`cat ${PID_FILE}`
echo"----------------------------------------"echo"pid file with ${pid}"echo"----------------------------------------"pid_count=`ps aux | grep idfa.web-1.0 | grep "${pid}" | grep -v grep | wc -l`if [ ${pid_count} -eq 0]; then
echo"${pid} dose not exist!"rm-rf ${PID_FILE}
pid=0fielsepid=0fi
}
startup(){
getpid
echo"======================================="
if [ ${pid} -ne 0]; then
echo"${APP_JAR_NAME} already started(PID=${pid})"echo"======================================="
elseecho"Starting ${APP_JAR_NAME}"ulimit-c unlimited
cd ${APP_HOME}
echo $commond
nohup java $commond&echo $! >${PID_FILE}
sleep1getpidif [ ${pid} -ne 0]; then
echo"(PID=${pid})...[Success]"echo"======================================="
elseecho"[Failed]"echo"======================================="exit-1fi
cd-fi
}
shutdown(){
getpid
echo"======================================="
if [ ${pid} -ne 0]; then
echo"Stopping ${APP_JAR_NAME}(PID=${pid})..."kill-15${pid}
getpidwhile [ ${pid} -ne 0]dosleep1getpid
done
echo"[Success]"echo"======================================="
elseecho"${APP_JAR_NAME} is not running"echo"======================================="fi
}
shutdown_force(){
getpid
echo"======================================="
if [ ${pid} -ne 0]; then
echo"Stopping ${APP_JAR_NAME}(PID=${pid})..."kill-9${pid}
getpidwhile [ ${pid} -ne 0]dosleep1getpid
done
echo"[Success]"echo"======================================="
elseecho"${APP_JAR_NAME} is not running"echo"======================================="fi
}
status(){
getpid
echo"======================================="
if [ ${pid} -ne 0]; then
echo"${APP_JAR_NAME} is running(PID=${pid})"echo"======================================="
elseecho"${APP_JAR_NAME} is not running"echo"======================================="fi
}case "$1" instart)
startup
;;
stop)
shutdown
;;
force)
shutdown_force
;;
restart)
$0stop
sleep1$0start
;;
status)
status
;;*)
exit1esac