您的位置:首页 > 房产 > 家装 > 简单网站设计网站_王者荣耀网页设计报告_创建网站平台_西安网络推广优化培训

简单网站设计网站_王者荣耀网页设计报告_创建网站平台_西安网络推广优化培训

2025/3/11 8:46:08 来源:https://blog.csdn.net/Crime_man/article/details/146034520  浏览:    关键词:简单网站设计网站_王者荣耀网页设计报告_创建网站平台_西安网络推广优化培训
简单网站设计网站_王者荣耀网页设计报告_创建网站平台_西安网络推广优化培训

spring boot jar启动shell脚本示例

  • 使用场景
  • shell脚本文件示例
  • 可能遇见的问题
    • 1. 无权限
      • 使用`chomd`命令为文件添加权限
    • 2. Shell脚本的行尾格式不兼容
      • 通过 Vim 修改文件格式

使用场景

在linux环境,启动小型spring boot项目时,我们总需要一些操作步骤才能将程序启动:

  1. 查找已启动的线程id
  2. 杀掉线程id
  3. 使用命令启动项目

我们可以讲上述命令集成的shell脚本文件中,运行shell脚本文件,快速执行上述步骤,启动程序。

shell脚本文件示例

#!/bin/bash
# 定义应用路径和日志路径
APP_JAR="/app/jar/xxx.jar"
LOG_FILE="/app/logs/log.out"# 查找与指定JAR包关联的Java进程PID
PID=$(ps -ef | grep java | grep "$APP_JAR" | grep -v grep | awk '{print $2}')# 终止现有进程
if [ -n "$PID" ]; thenecho "正在终止进程 $PID..."kill -9 $PIDsleep 2  # 等待进程完全终止[[2]]
fi# 确保日志目录存在
mkdir -p "$(dirname "$LOG_FILE")"# 启动应用并指定JVM参数
echo "正在启动 $APP_JAR..."
nohup java -jar -Xms2048m -Xmx4096m "$APP_JAR" > "$LOG_FILE" 2>&1 &
echo "应用启动成功,日志输出至:$LOG_FILE"

将上述文件保存为start.sh文件,放到Linux服务器上,更新完成jar包后,直接使用命令./start.sh执行shell脚本,即可完成项目的启动

可能遇见的问题

1. 无权限

-bash: ./start.sh: Permission denied

遇见上述问题的原因是因为用户没有操作start.sh文件的权限

使用chomd命令为文件添加权限

chmod u+x start.sh# chmod用法
chmod [who] [opt] [mode] 文件/目录名
who代表对象,是以下字母中的一个或组合:u:User,文件或文件夹的拥有者。
g:Group,文件或文件夹的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限mode则代表权限:
r:可读
w:可写
x:可执行

2. Shell脚本的行尾格式不兼容

-bash: ./start.sh: /bin/bash^M: bad interpreter: No such file or directory

出现上述问题原因主要是因为Shell脚本的行尾格式不兼容

通过 Vim 修改文件格式

  1. 打开脚本
vim start.sh
  1. 查看当前格式
:set ff

若显示 fileformat=dos,则需转换。

  1. 修改为Unix格式并保存
:set ff=unix  
:wq  

.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com