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

 

 

 

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