• 项目在linux上的简单部署


    本文章只介绍项目的简单部署,暂时没有Docker部署

    项目部署有两种方式,一种是直接命令部署,第二种是用脚本,脚本本身也是将命令进行封装来执行。

    命令

    项目通过maven打包,启动命令:

    1. # 启动命令
    2. nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >log.out 2>&1&

    关闭命令两种:

    第一种是直接查询出项目的进程ID,再用kill;

    第二种是在项目启动类中将进程ID写入固定文件中,在用命令进行关掉进程;

    第一种如下:

    1. # 查询项目进行ID 在杀掉进程
    2. ps -ef | grep demo-0.0.1-SNAPSHOT.jar
    3. kill -9 'pid'

    第二种:

    启动类:

    1. @Slf4j
    2. @SpringBootApplication
    3. public class DemoApplication {
    4. public static void main(String[] args) {
    5. SpringApplication application = new SpringApplication(DemoApplication .class);
    6. // 进程ID写到固定文本里
    7. application.addListeners(new ApplicationPidFileWriter("./shutdown/DemoApplication .pid"));
    8. application.run();
    9. }
    10. }

    在同项目部署的路径下运行下面的命令:

    1. # cat: 命令用于连接文件并打印到标准输出设备上。
    2. # xargs: 捕获一个命令的输出,然后传递给另外一个命令
    3. 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:

    1. # Shell脚本if语法-- if/then/elif/else/fi
    2. APP_NAME=demo-0.0.1-SNAPSHOT
    3. ex=`ps -ef | grep $APP_NAME | grep -v 'grep' | awk '{print $2}' | wc -l`
    4. if [ $ex -gt 0 ]
    5. then
    6. ps -ef | grep $APP_NAME | grep -v 'grep' |awk '{print $2}'|xargs kill -9
    7. sleep 3
    8. echo $APP_NAME "has stopped!"
    9. else
    10. echo $APP_NAME "is not running!"
    11. fi

    将脚本和打包的项目放在同一个位置,执行命令如下:

    1. # 启动项目
    2. ./start.sh
    3. #关闭项目
    4. ./shutdown.sh

    注:如果第一次执行需要为脚本赋权,执行下面命令

    chmod +x *.sh 

  • 相关阅读:
    Flutter | 使用 typedef 让回调更优雅
    docker 生成镜像的几个问题
    数据分析相关暂存
    如何创建属于自己的百度百科?这几个创建方法赶紧收藏
    ubuntu 挂载硬盘操作
    【angular】TodoList小项目(已开源)
    知识蒸馏IRG算法实战:使用ResNet50蒸馏ResNet18
    小白终于解决了在学习Go中不知道Makefile是什么的难题
    Uniapp 应用开机自启插件 Ba-Autoboot
    阻塞队列BlockingQueue
  • 原文地址:https://blog.csdn.net/qq_26818839/article/details/136199429