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