做网站上面的图标,对于网站建设提出建议,店铺设计叫什么,wordpress股市实时数据需求
SpringBoot项目#xff08;jar#xff09;部署#xff0c;需要先关闭原来启动的项目#xff0c;再启动新的项目。直接输入命令#xff0c;费时费力#xff0c;还容易出错。所以#xff0c;使用脚本启动。
脚本
脚本名#xff1a;start.sh 此脚本需要放置在jar包…需求
SpringBoot项目jar部署需要先关闭原来启动的项目再启动新的项目。直接输入命令费时费力还容易出错。所以使用脚本启动。
脚本
脚本名start.sh 此脚本需要放置在jar包的同级目录才能正确找到jar包。
#!/bin/bash
echo 部署开始XXX系统echo 关闭服务已开启的服务
PID$(jps -l | grep HelloWorld.jar | awk {print $1})
if [ -n $PID ];thenkill -9 $PIDecho 关闭服务完成
elseecho 关闭服务终止。无需关闭没有已开启的服务
fiecho 启动服务
nohup java -jar HelloWorld.jar HelloWorld.log 21 echo 部署完成XXX系统启动命令
在脚本所在目录执行如下命令
sh start.sh注意问题
Shell 变量赋值等号前后不能有空格
一开始我在给pid赋值时等号左右两端有等号导致报错。
解决 nohup: redirecting stderr to stdout
需要将错误输出也输入到log日志中。 也就是脚本中加了如下一段
21作用是将错误输出到标准输出因为标准输出又是输出到log日志中所以就都输入到日志中这样命令行就不会报上面的输出了。
Shell变量语法
精简语法
$pid完整语法
${pid}完整的变量应用语法不仅要包含$还要在变量名周围加上好括号。
PS
关闭已开启服务的逻辑采用的是直接强制关闭服务。
更好的方式其实是让服务自己关闭自身然后定时监控 一段时间之后如果程序已经关闭了就开启新项目 如果超过规定时间仍然没有关闭成功则强制关闭然后启动新项目。
此逻辑可以参考最后的《脚本参考》链接。
VSCode格式化shell
http://www.taodudu.cc/news/show-4756426.html?actiononClick
参考
脚本参考
https://gitee.com/longzipeng/study_share/blob/master/web_demo/renren_deploy.sh