springboot jar包编写启动start.sh

本文提供了一个SpringBoot应用的start.sh脚本模板,介绍了如何指定Java路径、设置JVM参数、重定向日志以及获取应用PID。同时,也提及了如何根据需要配置外部配置和启动参数。

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

对于Spring Boot应用,由于其内置了用于启动的主类(默认为org.springframework.boot.loader.JarLauncher或你自定义的@SpringBootApplication注解的类),因此start.sh脚本可以相对简化。以下是一个针对Spring Boot应用的start.sh脚本示例:

#!/bin/bash

# 指定Java安装路径,如果环境变量已设置,则不需要这行
#JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64

# 使用JAVA_HOME来获取java可执行文件的路径
if [ -z "$JAVA_HOME" ]; then
  JAVA_EXECUTABLE=java
else
  JAVA_EXECUTABLE=$JAVA_HOME/bin/java
fi

# Spring Boot应用jar文件路径
APP_JAR=/path/to/your/springboot-app.jar

# 应用程序运行所需的JVM参数(例如:内存大小)
JAVA_OPTS="-Xms512m -Xmx1024m"

# 将日志输出重定向到一个文件
LOG_FILE=/path/to/your/logfile.log
exec $JAVA_EXECUTABLE $JAVA_OPTS -jar $APP_JAR >> $LOG_FILE 2>&1 &

# 获取应用的进程ID以便后续可能的操作
PID=$!

# 输出进程ID
echo "Application started with PID: $PID"

请将 /path/to/your/springboot-app.jar 替换为你的Spring Boot应用的实际jar文件路径。

同样,别忘了在执行此脚本前赋予它执行权限:chmod +x start.sh

如果你的应用需要读取外部配置文件或者有其他特定的启动参数,可以通过添加 -Dspring.config.location-Darguments 等参数到 JAVA_OPTS 来实现。

### 配置Spring Boot JAR文件开机自启 #### 创建启动目录与放置JAR 确保拥有一个用于存放项目的特定目录,并将Spring BootJAR置于其中。例如: ```bash mkdir -p /home/java-server/test-demo ``` 这一步骤有助于组织项目结构,便于管理和维护[^1]。 #### 编写启动脚本 编写专门针对Spring Boot应用的启动脚本来管理其生命周期。建议按照项目名来命名此脚本以便识别,比如`cyber-country.sh`对于名为`cyber-country.jar`的应用而言。该脚本应位于系统的初始化脚本路径下,如`/etc/rc.d/init.d/`,以方便查找和调用: ```bash vim /etc/rc.d/init.d/cyber-country.sh ``` 在脚本内部定义必要的逻辑,括但不限于检查是否存在旧版本进程并终止它们,随后依据预设参数重启新实例。这里展示了一个简单的启动函数示例: ```bash #!/bin/bash # jar位置 jar_path='/usr/local/project/cyber-country.jar' start(){ # 项目后台启动 并加入开机自启 if [ -jar $jar_path > nohup.out 2>&1 & else echo "未找到可执行$jar_path" exit fi } start ``` 上述代码片段展示了如何检测目标JAR文件的存在性以及利用`nohup`命令让Java程序以后台模式运行的同时重定向输出流至日志文件[^4]。 #### 设置权限 赋予启动脚本适当的读取、写入及执行权限,这对于保证脚本能正常工作至关重要。可以通过更改文件属性的方式完成这一操作: ```bash chmod -R 777 /usr/web/litemall-jar/litemall-all-0.1.0-exec.jar ``` 请注意调整这里的路径匹配实际环境中的情况[^5]。 #### 注册为Systemd服务(适用于现代Linux发行版) 为了让Spring Boot应用程序能够在系统引导过程中被自动激活,推荐将其注册成systemd的服务单元。创建一个新的`.service`文件描述所需的行为特性,通常存放在`/etc/systemd/system/`内。以下是模板化的配置项说明: ```ini [Unit] Description=My Spring Boot Application Service After=syslog.target [Service] User=username ExecStart=/usr/bin/java -jar /path/to/spring-boot-app.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target ``` 在此基础上替换掉占位符变量(`username`, `/path/to/spring-boot-app.jar`)的具体值之后保存退出编辑器。接着刷新守护进程缓存使改动生效并通过启用指令设定为默认状态下的启动组件之一: ```bash sudo systemctl daemon-reload sudo systemctl enable my-springboot-service.service ``` 这样就完成了整个流程的设计与实施过程[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值