当前位置: 首页 > news >正文

启动器startup.sh

在实际生产环境中使用 startup.sh 脚本而不是直接使用 java -jar 命令的原因主要有以下几点:

1. 环境配置和管理

系统环境设置

  • 设置 JAVA_HOMEJRE_HOME 等环境变量
  • 配置系统级参数如 ulimit(文件描述符限制、进程数限制等)
  • 设置工作目录和日志目录

JVM 参数配置

# 示例:在 startup.sh 中可以预定义 JVM 参数
JAVA_OPTS="-Xms512m -Xmx2g -XX:+UseG1GC"

2. 应用配置管理

外部化配置

  • 指定不同环境的配置文件:
    # 指定不同环境的配置文件
    java -jar app.jar --spring.profiles.active=prod
    

配置文件路径管理

  • 设置配置文件、日志文件的路径
  • 管理敏感配置(如数据库密码)通过环境变量传递

3. 进程管理

后台运行

# startup.sh 可以确保应用在后台运行
nohup java -jar app.jar > app.log 2>&1 &

PID 管理

  • 记录进程 ID,便于后续的停止和监控操作
  • 防止重复启动同一应用

4. 日志管理

日志重定向

# 将标准输出和错误输出重定向到日志文件
nohup java -jar app.jar > /var/log/app/console.log 2>&1 &

日志轮转集成

  • 与 logrotate 等日志管理工具集成

5. 启动前检查

依赖服务检查

  • 检查数据库、消息队列等依赖服务是否可用
  • 网络连通性检查

资源检查

  • 检查磁盘空间、内存是否充足
  • 检查必需的配置文件是否存在

6. 标准化运维

统一接口

  • 提供标准的启动、停止、重启接口
  • 便于运维团队管理和自动化部署

集成监控

  • 集成健康检查、监控脚本
  • 发送启动状态通知

7. 安全考虑

权限控制

  • 以特定用户身份运行应用
  • 设置文件和目录权限

敏感信息处理

  • 通过环境变量而非命令行参数传递敏感信息
  • 避免敏感信息在进程列表中暴露

典型的 startup.sh 示例

#!/bin/bash# 设置环境变量
export JAVA_HOME=/usr/java/jdk
export APP_HOME=/opt/myapp
export LOG_PATH=/var/log/myapp# JVM 参数
JAVA_OPTS="-Xms1g -Xmx2g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError"
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod"
JAVA_OPTS="$JAVA_OPTS -Dlogging.config=$APP_HOME/config/logback-spring.xml"# 应用参数
APP_JAR="$APP_HOME/myapp.jar"
APP_NAME="myapp"# 检查应用是否已经在运行
if [ -f "$APP_HOME/$APP_NAME.pid" ]; thenPID=$(cat $APP_HOME/$APP_NAME.pid)if ps -p $PID > /dev/null; thenecho "$APP_NAME is already running (PID: $PID)"exit 1fi
fi# 启动应用
nohup $JAVA_HOME/bin/java $JAVA_OPTS -jar $APP_JAR > $LOG_PATH/console.log 2>&1 &# 保存 PID
echo $! > $APP_HOME/$APP_NAME.pidecho "$APP_NAME started with PID $!"

这种方式提供了更好的可控性、可维护性和安全性,是企业级应用部署的标准实践。

http://www.sczhlp.com/news/47320/

相关文章:

  • 贵德县建设局网站洛阳seo网络推广
  • 网站开发任务书哪个搜索引擎能搜敏感内容
  • 双语网站建设费用百度合伙人官方网站
  • 成都商城网站开发站长工具的使用seo综合查询运营
  • 网站建设审批表中央今日头条新闻
  • 郑州做网站优化地址客户引流的最快方法是什么
  • .php是什么网站北京网络营销推广公司
  • 计算机网站开发实现总结公司开发设计推荐
  • 南阳做网站优化哪家好我想开个网站平台怎么开呢
  • ueditor wordpress4.7网站seo优化怎么做
  • 公司给别人做的网站违法吗windows优化大师有毒吗
  • 网站制作的基本步骤站长工具排名分析
  • 彩票网站建设应该要注意哪些seo优化关键词0
  • 36氪网站是用什么做的微营销平台系统
  • cve request platform #26 menu info
  • CentOS 8 安装Docker 报错requires container-selinux = 2:2.x
  • 西宁电商网站制作公司seo页面优化公司
  • 个人做外贸网站违法吗百度一下首页网页
  • 长葛网站建设友链
  • 贵州省住房与城乡建设厅门户网站怎样进入12345的公众号
  • 网站如何做seo的广告竞价推广
  • 京东做代码的网站东莞网站建设工作
  • 哪些大型门户网站是用phpwind 搭建的谷歌优化师
  • 淄博北京网站建设杭州网站提升排名
  • 韩国电商网站排名软文接单平台
  • 公司网站怎么做优化下载安装
  • 网站建设技术交流如何优化seo技巧
  • 网站地图代码提高网站搜索排名
  • cve request platform #9 comment infomation queryall
  • cve request platform#11 coupon-goods relationship information.