本文章只介绍项目的简单部署,暂时没有Docker部署。
项目部署有两种方式,一种是直接命令部署,第二种是用脚本,脚本本身也是将命令进行封装来执行。
项目通过maven打包,启动命令:
- # 启动命令
- nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >log.out 2>&1&
-
关闭命令两种:
第一种是直接查询出项目的进程ID,再用kill;
第二种是在项目启动类中将进程ID写入固定文件中,在用命令进行关掉进程;
第一种如下:
- # 查询项目进行ID 在杀掉进程
- ps -ef | grep demo-0.0.1-SNAPSHOT.jar
- kill -9 'pid'
第二种:
启动类:
- @Slf4j
- @SpringBootApplication
- public class DemoApplication {
-
- public static void main(String[] args) {
- SpringApplication application = new SpringApplication(DemoApplication .class);
- // 进程ID写到固定文本里
- application.addListeners(new ApplicationPidFileWriter("./shutdown/DemoApplication .pid"));
- application.run();
- }
-
- }
在同项目部署的路径下运行下面的命令:
- # cat: 命令用于连接文件并打印到标准输出设备上。
- # xargs: 捕获一个命令的输出,然后传递给另外一个命令
- cat shutdown/DemoApplication.pid |xargs kill
参考链接:
xargs的使用: Linux xargs 命令 | 菜鸟教程
准备启动脚本 start.sh:
nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >log.out 2>&1&
准备关闭脚本 shutdown.sh:
- # Shell脚本if语法-- if/then/elif/else/fi
- APP_NAME=demo-0.0.1-SNAPSHOT
- ex=`ps -ef | grep $APP_NAME | grep -v 'grep' | awk '{print $2}' | wc -l`
- if [ $ex -gt 0 ]
- then
- ps -ef | grep $APP_NAME | grep -v 'grep' |awk '{print $2}'|xargs kill -9
- sleep 3
- echo $APP_NAME "has stopped!"
- else
- echo $APP_NAME "is not running!"
- fi
将脚本和打包的项目放在同一个位置,执行命令如下:
- # 启动项目
- ./start.sh
- #关闭项目
- ./shutdown.sh
注:如果第一次执行需要为脚本赋权,执行下面命令
chmod +x *.sh