#!/bin/bash
source /etc/profile
project=classroom-api
##############################
mkdir -p "/var/run/$project"
mkdir -p "/data0/logs/$project"
pid_file="/var/run/$project/run.pid"
jar_file="${project}.jar"
run_log="/data0/logs/$project/stdout.log"
if [[ "$DADA_ENV" == "production" ]]; then
java_opts="-Xms4g -Xmx4g"
else
java_opts="-Xms512m -Xmx512m"
fi
cd /data0/webroot/${project}/
##############################
echo "work dir: "`pwd`
echo "pid file: $pid_file"
echo "jar file: $jar_file"
echo "run log: $run_log"
echo
check_runing()
{
pid=`cat ${pid_file}`
ps aux | grep ${pid} | grep -q ${jar_file}
echo $?
}
start()
{
if [ -f ${pid_file} ];then
res=`check_runing`
if [ $res -eq 0 ];then
echo "already running"
exit 0
else
rm -f ${pid_file}
fi
fi
echo "DADA_ENV: ${DADA_ENV}"
if [[ "$DADA_ENV" == "test" ]]; then
localIP=0.0.0.0
nohup java ${java_opts} -javaagent:/jacoco/lib/jacocoagent.jar=includes=com.dadaabc.*,output=tcpserver,port=40023,address=$localIP -jar ${jar_file} >> ${run_log} 2>&1 & echo $! > ${pid_file}
else
nohup java ${java_opts} -jar ${jar_file} >> ${run_log} 2>&1 & echo $! > ${pid_file}
fi
sleep 3
res=`check_runing`
if [ $res -eq 0 ];then
echo "start OK"
else
echo "start Failed"
rm -f ${pid_file}
fi
}
stop()
{
if [ -f ${pid_file} ];then
res=`check_runing`
if [ $res -eq 0 ];then
pid=`cat ${pid_file}`
kill -TERM ${pid}
sleep 3
res=`check_runing`
if [ $res -ne 0 ];then
rm -f ${pid_file}
echo "stop OK"
else
kill -9 ${pid}
rm -f ${pid_file}
echo "force stop OK"
fi
else
echo "${pid_file} exists, but ${jar_file} not running"
rm -f ${pid_file}
fi
else
echo "${jar_file} not running"
fi
}
usage()
{
echo "$0 stop"
echo "$0 start"
echo "$0 restart"
}
if [ $# -ne 1 ];then
usage
exit 1
fi
case $1 in
start)
start;;
stop)
stop;;
restart)
stop && sleep 1 && start;;
*)
usage && exit 1
esac