码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 项目在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 

  • 相关阅读:
    [PAT练级笔记] 44 Basic Level 1044 火星数字
    网络协议学习笔记
    SpringSecurity授权流程(自己做笔记用的)
    Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)
    Python爬虫实战-批量爬取豆瓣电影排行信息
    计算机架构史上的一次伟大失败,多数人都不知道
    五款好用到爆炸的小众软件,用过的都好说!建议收藏转发
    【学习QT必备的C++基础】C++继承、派生与多态
    简单工厂模式
    想要精通算法和SQL的成长之路 - 验证二叉搜索树和不同的二叉搜索树
  • 原文地址:https://blog.csdn.net/qq_26818839/article/details/136199429
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号