java 项目自动控制维护脚本

 

1.公共控制脚本

workspace/common/public.sh

# 公共的控制脚本

basepath=$(cd `dirname $0`; pwd)
function start()
{
count=`ps -ef |grep ${projectName}.jar |grep -v "grep" |wc -l`
if [ 0 == $count ];then
echo "正在启动"
nohup java -XX:+PrintGCDateStamps -Xloggc:${basepath}/../${projectName}/log/gc.log ${other}  -jar -Dconf=${basepath}/../${projectName}/${projectName}.xml -Dlog_dir=${basepath}/../${projectName}/log ${basepath}/../${projectName}/${projectName}.jar >/dev/null 2>&1 &
count=`ps -ef |grep ${projectName}.jar |grep -v "grep" |wc -l`
sleep 2 
count=`ps -ef |grep ${projectName}.jar |grep -v "grep" |wc -l`
if [ 0 == $count ];then
echo "启动失败"                 
else
echo "启动成功! 进程信息为 :`jps |grep ${projectName}.jar`"
fi
else
echo "服务已经存在! 请停止后再启动"
fi
}
function stop()
{
count=`ps -ef |grep ${projectName}.jar |grep -v "grep" |wc -l`
if [ 0 == $count ];then
echo "服务未启动"                 
else
string=`jps |grep ${projectName}.jar`
array=(${string// / })
echo "进程id为: ${array[0]} 正在停止"
`kill ${array[0]}`
sleep 2
count=`ps -ef |grep ${projectName}.jar |grep -v "grep" |wc -l`
if [ 0 == $count ];then
echo "停止完成"                 
else
echo "停止失败! 进程为 :`jps |grep ${projectName}.jar`"
fi
fi
}
function restart()
{
stop
sleep 2
start
}
function status()
{
count=`ps -ef |grep ${projectName}.jar |grep -v "grep" |wc -l`
if [ 0 == $count ];then
echo "服务 ${projectName} 未启动"                 
else
echo "服务 ${projectName} 正在运行"
fi
}
function show()
{
echo "java -XX:+PrintGCDateStamps -Xloggc:${basepath}/../${projectName}/log/gc.log ${other}  -jar -Dconf=${basepath}/../${projectName}/${projectName}.xml -Dlog_dir=${basepath}/../${projectName}/log ${basepath}/../${projectName}/${projectName}.jar"
}

2.调用控制脚本
 

workspace/{prijectName}/controller.sh

#!/bin/bash
. `dirname $0`/../common/public.sh
other=" -Xms128m -Xmx128m " #其他参数.如JVM内存配置
projectName="influx-select" #项目名称

case $1 in
"start")
start
;;
"stop")
stop
;;
"restart")
restart
;;
"status")
status
;;
"show")
show
;;
*)
echo "input {start | stop | restart | status}"
echo "start   | 启动"
echo "stop    | 停止"
echo "restart | 重启"
echo "status  | 查看状态"
echo "show    | 获取前端启动脚本"
;;
esac

 

3.项目目录结构

workspace/common/                                 公共脚本

workspace/{projectName}/                        项目文件

workspace/{projectName}/controller.sh     控制脚本

workspace/{projectName}/log                    项目日志 

workspace/{projectName}/{projectName}.jar       jar

workspace/{projectName}/{projectName}.xml    xml

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章