包含指定环境 启动的脚本。
(指定springBoot的 application.properties)
创建 start.sh 文件,文件内容如下:
1、直接启动
#!/bin/sh
#该脚本为Linux下启动java程序的
###################################
#!!!!!!! $1第一个参数为方法名start|stop|restart|status
# $2第二个参数为jar包全称
#初始化psid变量(全局)
#函数内想用shell脚本外部传入的参数必须在函数方法体外声明才能使用
psid=0
jar=$2
checkpid() {
javaps=`jps -l | grep $jar`
if [ -n "$javaps" ]; then
psid=`echo $javaps | awk '{print $1}'`
else
psid=0
fi
}
###################################
#(函数)启动程序
start() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "FBI warning你个老六: $jar already started! (pid=$psid)"
echo "================================"
else
echo "开始启动 $jar..."
`nohup java -jar $jar >/dev/null 2>& 1 &`
checkpid
if [ $psid -ne 0 ]; then
echo "FBI Warning你个老六,jar包启动成功!"
else
echo "FBI Warning你个老六,jar包启动失败!"
fi
fi
}
###################################
#(函数debug模式)启动程序
debug() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "FBI warning你个老六: $jar already started! (pid=$psid)"
echo "================================"
else
echo "开始启动 $jar..."
`nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 $jar >/dev/null 2>& 1 &`
checkpid
if [ $psid -ne 0 ]; then
echo "FBI Warning你个老六,jar包启动成功!"
else
echo "FBI Warning你个老六,jar包启动失败!"
fi
fi
}
###################################
#(函数)停止程序
stop() {
checkpid
if [ $psid -ne 0 ]; then
echo "正在 stopping $jar.... "
`kill -9 $psid`
if [ $? -eq 0 ]; then
echo "service $jar stop success"
else
echo "service $jar stop fail"
fi
else
echo "================================"
echo "warn: $jar is not running"
echo "================================"
fi
}
###################################
#(函数)检查程序运行状态
status() {
checkpid
if [ $psid -ne 0 ]; then
echo "$jar is running! (pid=$psid)"
else
echo "$jar is not running"
fi
}
###################################
#读取脚本的第一个参数($1),进行判断
#参数取值范围:{start|stop|restart|status|info}
#如参数不在指定范围之内,则打印帮助信息
###################################
case "$1" in
'start')
start
;;
'stop')
stop
;;
'restart')
stop
start
;;
'redebug')
stop
debug
;;
'status')
status
;;
esac
启动指令为: ./start.sh start xxxx.jar
停止服务: ./start.sh stop xxxx.jar
nohup 启动的相关参数,可自行添加。
注意,新建的 .sh文件 需分配权限,可以使用 chmod 755 xxx.sh 指令
2、指定配置文件启动。
如项目中,application-dev.properties 文件,则使用dev
只修改 start 函数
start() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "FBI warning你个老六: $jar already started! (pid=$psid)"
echo "================================"
else
echo "开始启动 $jar..."
`nohup java -jar $jar --spring.profiles.active=$active >/dev/null 2>& 1 &`
checkpid
if [ $psid -ne 0 ]; then
echo "FBI Warning你个老六,jar包启动成功!"
else
echo "FBI Warning你个老六,jar包启动失败!"
fi
fi
}
如若 上:
启动指令为: ./start.sh start xxxx.jar dev (dev为对应的坏境的)
停止服务: ./start.sh stop xxxx.jar
spring.profiles.active= 指定要加载的配置文件,也可以直接写死
注意,.sh文件 需分配权限,可以使用 chmod 755 xxx.sh 指令
3、使用 加载外部的配置文件启动。
配置文件放在指定文件夹中,如若修改 application.properties。不需要重打包
只修改 start 函数
start() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "FBI warning你个老六: $jar already started! (pid=$psid)"
echo "================================"
else
echo "开始启动 $jar..."
`nohup java -Dspring.config.additional-location=file:/apphome/bers/java/dyh/application.properties -jar $jar >/dev/null 2>& 1 &`
checkpid
if [ $psid -ne 0 ]; then
echo "FBI Warning你个老六,jar包启动成功!"
else
echo "FBI Warning你个老六,jar包启动失败!"
fi
fi
}
我把配置文件放在 /apphome/bers/java/dyh/application.properties。
指定配置文件启动