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

杭州网站设计建设安徽seo人员

杭州网站设计建设,安徽seo人员,开发员给我用织梦做的网站,六盘水网站建设在实际部署 Spring Boot 项目的生产环境中,如何确保服务自动启动(如开机自动运行、宕机自动恢复)是一项基础而关键的运维能力。本文将系统介绍如何在 Linux 中将 Spring Boot 应用注册为 systemd 服务,实现进程守护与自动启动。&a…

在实际部署 Spring Boot 项目的生产环境中,如何确保服务自动启动(如开机自动运行、宕机自动恢复)是一项基础而关键的运维能力。本文将系统介绍如何在 Linux 中将 Spring Boot 应用注册为 systemd 服务,实现进程守护与自动启动。


📌 为什么使用 systemd 管理 Spring Boot

相比传统的 nohup 启动方式,使用 systemd 有以下优势:

  • 自动启动:系统启动时自动拉起服务

  • 异常重启:服务异常退出后可自动重启

  • 统一日志管理:支持标准输出日志与 GC 日志分离

  • 安全资源限制:可定义 CPU、内存、文件数限制

  • 进程守护:无需人工写监控脚本


🧱 一、准备工作

1. 创建应用部署目录结构(推荐)

/opt/nbsaas/
├── db/
│   ├── nbsaas-baison-db.jar
│   ├── start.sh
│   └── logs/

2. 编写启动脚本 start.sh

#!/bin/bashAPP_NAME="nbsaas-baison-db.jar"
JAR_PATH="/opt/nbsaas/db/$APP_NAME"
LOG_DIR="/opt/nbsaas/db/logs"mkdir -p $LOG_DIRJAVA_OPTS=""
JAVA_OPTS+=" -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
JAVA_OPTS+=" -XX:+UseStringDeduplication"
JAVA_OPTS+=" -XX:+UseContainerSupport -XX:MaxRAMPercentage=50"
JAVA_OPTS+=" -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai"
JAVA_OPTS+=" -Xlog:gc*:file=${LOG_DIR}/gc.log:time,level,tags"exec java $JAVA_OPTS -jar $JAR_PATH

⚠️ 使用 exec 而非 nohup,确保 systemd 能正确追踪进程 PID。


⚙️ 二、创建 systemd 服务文件

/etc/systemd/system/nbsaas-db.service 中创建如下内容:

[Unit]
Description=Nbsaas DB Service
After=network.target[Service]
Type=simple
User=root
WorkingDirectory=/opt/nbsaas/db
ExecStart=/opt/nbsaas/db/start.sh
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
RestartSec=5s
StandardOutput=append:/opt/nbsaas/db/logs/stdout.log
StandardError=append:/opt/nbsaas/db/logs/stderr.log[Install]
WantedBy=multi-user.target

说明:

字段含义
WorkingDirectory程序启动目录
ExecStart启动命令(调用你自定义的脚本)
Restart=on-failure非 0 退出时自动重启
WantedBy=multi-user.target多用户模式下自动启动

🚀 三、启动服务并设置开机启动

# 重新加载 systemd 配置
sudo systemctl daemon-reload# 启动服务
sudo systemctl start nbsaas-db.service# 查看状态
sudo systemctl status nbsaas-db.service# 设置开机自启动
sudo systemctl enable nbsaas-db.service

🔍 四、常见运维命令

# 查看日志
journalctl -u nbsaas-db.service -f# 停止服务
sudo systemctl stop nbsaas-db.service# 重启服务
sudo systemctl restart nbsaas-db.service# 禁止开机启动
sudo systemctl disable nbsaas-db.service

🧠 五、实用优化建议

项目建议
多服务部署为每个服务单独创建一个 service 文件
异常退出日志可通过 stderr.log + journalctl 排查
内存控制使用 -XX:MaxRAMPercentage=50 控制内存
安全用户隔离推荐使用非 root 用户运行(可修改 User=xxx
服务依赖可配置 After=mysql.service 等依赖

✅ 六、自动重启脚本和部署流程推荐

将多个服务统一写成 systemd 服务,每个服务独立部署目录、独立日志,便于问题快速排查与水平扩展。

建议结合 DevOps 工具链(如 Jenkins、Ansible)自动部署服务与注册 systemd 文件。


✍️ 结语

通过将 Spring Boot 程序以 systemd 服务方式部署在 Linux 上,不仅提升了应用的稳定性和运维效率,也为后续自动化部署、弹性伸缩打下了坚实基础。作为软件架构师或运维工程师,应当将 systemd 部署方式纳入标准交付规范。

http://www.dtcms.com/wzjs/295342.html

相关文章:

  • 常德今日确诊名单seo服务公司怎么收费
  • 企业网站的重要性seo是搜索引擎优化吗
  • 2g网站空间百度提交入口网址在哪
  • 企业做网站方案网站搜索引擎优化主要方法
  • 辽宁省造价工程信息网seo排名怎么看
  • b s网站开发临沂森工木业有限公司
  • 网站商城设计方案百度收录提交网站后多久收录
  • 中山手机网站建设淘宝一个关键词要刷多久
  • 四川建站安徽网站推广优化
  • 杭州网站建设费用多少钱知乎关键词排名优化工具
  • 做网站费用可以看为广告费用吗企业qq多少钱一年
  • 自己做网站犯法吗全网营销公司
  • 网站开发最新技术全达seo
  • 网站模板是什么意思企业产品推广策划方案
  • 商标查询网站怎么做杭州网站外包
  • 做网站 域名是怎么回事seo先上排名后收费
  • 网站html地图制作四川刚刚发布的最新新闻
  • 镇江网站建设工作室西安网络推广公司
  • 专门做卫生间效果图的网站南京seo代理
  • 惠阳营销网站制作推一手新闻发稿平台
  • 营销型高端网站建设友妙招链接
  • 单页面网站如何优化网络运营是做什么的
  • 怎么建设一个购物网站提高关键词排名的软文案例
  • erp软件有哪些站长工具 seo查询
  • 昌乐哪里有做网站的短视频seo营销
  • 建设ftp网站怎么创建数据库网络安全培训最强的机构
  • wordpress 文件大小系统优化大师下载
  • 松江网站建设互联网广告推广是做什么的
  • 汽车贸易网站建设方案常州网站建设书生商友
  • 广州公司网站建设设计顾google推广一年的费用