1、SpringBoot application.yml配置文件放在jar外部
开发与生产环境的不同,有可能对配置文件属性要求不同
此时需要将application.yml文件放在可运行Jar的外部
将自己做的几种尝试过可行的的贴上,做个简单记录
- 运行命令 —— Java jar demo.jar
1.1 可以在 当前Jar文件目录 建 config同级目录,这个config同级目录放入 application.yml
1.2 也可以在 当前Jar文件目录 直接放入application.yml
- 运行命令 —— java -jar demo.jar --spring.config.location=路径(application.yml)
只需要将路径配置填入就ok
PS:
如果用命令改变application.yml中某一个属性,修改 --属性=****
如改变端口: java -jar demo.jar --server.port=8686
2、开机执行JAR Shell脚本
1.编写jar执行脚本
1 |
|
#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=XXXX.jar
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh wss.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup java -Xms2048m -Xmx4096m -jar /server/$APP_NAME > /server/logs/websocketserverlog.file 2>&1 &
echo "${APP_NAME} start success"
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
注意要给SSH文件执行的权限
2.编写开机服务service(该service的ExecStart配置为上面的脚本路径)
1 2 3 |
|
加入以下内容
[Unit]
Description=XXX service
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/server/wss.sh start
ExecReload=/server/wss.sh restart
ExecStop=/server/wss.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
3.开机执行service
1 2 3 4 5 |
|
4.重启服务,查看脚本是否执行
重启服务器:
1 |
|
查看 jar 其否启动
1 |
|
# systemctl start xxx.service 启动nginx服务
# systemctl stop xxx.service 停止服务
# systemctl restart xxx.service 重新启动服务
# systemctl list-units --type=service 查看所有已启动的服务
# systemctl status xxx.service 查看服务当前状态
# systemctl enable xxx.service 设置开机自启动
# systemctl disable xxx.service 停止开机自启动