重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Springboot内置了tomcat,部署十分的方便,无需额外的应用服务器。但是在部署过程中,却有很多种方式
本文总结在工作中常见的linux部署方式
linux可以通过nohup命令将项目部署在后台,即使终端退出,进程仍然在运行,并且会生成一个nohup.out 文件
但是…想要结束进程,只能先找到进程的pid,再kill掉
nohup java -jar xxx.jar &
缺点:
1、项目升级不方便,需要先找到进程,再kill掉,再重新用nohup启动进程,步骤繁琐
2、项目升级过程中,经常需要一些额外的操作,例如备份配置文件,备份jar。单单通过nohup命令,无法完成附加的额外操作
前面讲了nohup的部署方式和它的繁琐缺点,是否能够通过ssh脚本自动化nohup的部署呢
操作步骤:先通过端口找到进程,进程存在则kill掉,再启动项目,无需人工操作
还可以在启动前备份好jar包,一些其他额外操作
#!/bin/bash
port=9090
pid=$(netstat -lnp | grep :$port | awk '{print $7}' | awk -F"/" '{print $1 }');
if [ -n "$pid" ]; then
kill -9 $pid;
fi
nohup java -jar xxx.jar &
echo "project start completed."
缺点:
1、脚本有丢失的风险,需做好备份
2、脚本需要维护,换了端口,jar移动了位置或改名,都需要调整脚本
3、灵活性差,如果只想停止,不想重启怎么办?或者只想执行某个步骤,这时就显得很麻烦
linux的service功能可以很好的管理服务的启动、重启、停止,配置开机启动等信息
每次操作只需一个简单的命令,并且可以单独执行某个操作,解决了上面两种部署方案的不足
通过简单的文件配置,即可完成服务的管理,十分推荐
[Unit]
Description=example
After=syslog.target
[Service]
ExecStart=java -jar /xxx.jar
[Install]
WantedBy=multi-user.target
具体的service操作介绍可以百度哈,本文只介绍下这种部署方式的存在
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧