云端部署启动脚本-deploy

本文介绍了在云端部署Java应用时如何动态修改jar包配置,包括外挂配置文件的方法。通过nohup脚本实现服务在后台持续运行,即使终端关闭也不会停止。详细解析了nohup命令及其参数,如JVM内存设置,并讨论了日志输出的重定向。同时,提到了如何查看后台任务及输出重定向的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态修改jar包配置

进行服务器jar包启动时,有时候我们会动态的修改application.properties的配置属性,这时候有两种方法:

  • 直接在打包前的本地工程内部进行修改
  • 外挂配置文件:在服务器jar包的同级目录创建一个application.properties文件,内部写入自己的二次配置,使用命令:java -jar 包名.jar --spring.config.addition-location=application.properties文件路径

为了避免启动服务后,关闭终端导致服务停止,我们采用依赖脚本处理deploy.sh进行处理。

nohup java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar 包名.jar --spring.config.addition-location=application.properties文件路径

当前deploy.sh文件目录下,chmod -R 777 * 修改可执行权限,然后启动脚本./deploy.sh &
执行完会提示:“nohup:忽略输入并把输出追加到 nohup.out”,可以使用tail -200f ./nohup.out 查看服务启动的日志输出

  • nohup:LINUX命令用法,不挂断地运行命令
  • -Xms400m:初始jvm堆栈大小
  • -Xmx400m:最大jvm堆栈大小
  • -XX:NewSize=200m:初始jvm新生代大小
  • -XX:MaxNewSize=200m:最大新生代大小
java -jar XXX.jar &
  1. 命令结尾没有 “&” ,则变成 “java -jar XXX.jar ” ,表示在当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗口,则程序直接退出
  2. 命令结尾添加 “&” ,则变成 “java -jar XXX.jar &” ,表示在当窗口关闭时,程序才会中止运行。&代表让该命令在后台执行。
nohup java -jar XXX.jar > Log.log & 
或者
nohup java -jar XXX.jar >> Log.log &
  • 命令 “nohup java -jar XXX.jar &” 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。注意,该作业的所有输出被重定向到nohup.out的文件中。
  • 命令 “nohup java -jar XXX.jar > Log.log &” 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,并且该作业的所有输出被重定向到Log.log的文件中。“ > Log.log ” 该命令就是指定日志输出的文件。
  • ">>"表示将输出以追加的方式重定向到Log.log中。
nohup java -jar XXX.jar > Log.log 2>&1 & 
或者
nohup java -jar XXX.jar >> Log.log 2>&1 & 
或者
nohup java -jar XXX.jar > /dev/null 2>&1 & 
  • 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
  • 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
  • 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
  • 屏蔽输出,起到禁止输出作用:/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
  • “> Log.log 2>&1” :表示将 stdout 和 stderr 合并后重定向到 Log.log


输出之后,可以使用“jobs”查看一下后台运行的任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值