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