shell 启动、停止、重启java程序
#完整的jvm启动参数,将之前定义的变量组合。
JAVA_OPTS="${JAVA_OPTS} -Xms${HEAP_MEMORY} -Xmx${HEAP_MEMORY} -XX:PermSize=${PERM_MEMORY} -X X:MaxPermSize=${PERM_MEMORY} -Dcom.sun.management.jmxremote.port=${JMX_PORT} -Duser.dir=${Projec t_HOME}"
#输出参数
echo "start jvm args ${JAVA_OPTS}"
#此条语句最为重要,使用nohup命令启动jar包,nohup命令就是让程序永远在后台运行
nohup java $JAVA_OPTS -jar ${Project_HOME}/bin/project.jar &
# $!为系统变量,表示上一个子进程的进程号。 shell遇到”>”操作符,会判断右边文件是否存在,如果存在就先删除,并且创建新文件。
#不存在直接创建。无论左边命令执行是否成功。右边文件都会变为空。
#重定向不是很理解,个人认为就是将进程号保存在 project.pid文件中
echo $! > $ProjectPIDFILE
#打印系统启动成功
echo STARTED
#一直不知道两个连着的分号是啥意思,我想应该就是break的意思
;;
#如果$1为stop时
stop)
echo "Stopping project ... "
#首先判断project.pid是否存在,若不存在返回没有找到文件。-f 判断后面参数是否是一个文件,若是返回1
if [ ! -f $ProjectPIDFILE ]
then
echo "error: count not find file $ProjectPIDFILE"
exit 1
else
#杀掉系统进程 $(cat $ProjectPIDFILE)
kill -9 $(cat $ProjectPIDFILE)
rm $ProjectPIDFILE
echo STOPPED
fi
;;
#如果$1不是start、stop等任意字符时,
*)
echo "Exec ... "
#调用ant来执行这个命令
ant $*
;;
#结束case语句
esac
exit 0
?
?