Ubuntu Java服务如何配置
导读:Ubuntu Java 服务配置指南 一 准备环境 安装 OpenJDK(示例为 OpenJDK 11): 命令:sudo apt update && sudo apt install openjdk-11-jdk -y...
Ubuntu Java 服务配置指南
一 准备环境
- 安装 OpenJDK(示例为 OpenJDK 11):
- 命令:
sudo apt update & & sudo apt install openjdk-11-jdk -y - 验证:
java -version、javac -version
- 命令:
- 配置 JAVA_HOME(可选但推荐):
- 查找路径:
readlink -f $(which java)(常见路径如:/usr/lib/jvm/java-11-openjdk-amd64/bin/java) - 方法一(系统级):编辑 /etc/environment,加入
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64",执行source /etc/environment - 方法二(交互选择):
sudo update-alternatives --config java与--config javac选择默认版本
- 查找路径:
二 使用 Systemd 部署 JAR 服务
- 创建服务单元文件:
sudo nano /etc/systemd/system/myapp.service - 示例内容(按需修改路径与参数):
[Unit] Description=My Java Application After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu/myapp ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /home/ubuntu/myapp/app.jar --server.port=8080 SuccessExitStatus=143 TimeoutStopSec=10 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target - 启用与操作:
- 重新加载:
sudo systemctl daemon-reload - 开机自启:
sudo systemctl enable myapp.service - 启动/停止/重启:
sudo systemctl start|stop|restart myapp.service - 查看状态:
sudo systemctl status myapp.service
- 重新加载:
- 日志查看:
- 服务日志:
sudo journalctl -u myapp.service -f - 系统日志:
/var/log/syslog(排查 systemd 与权限问题)
- 服务日志:
三 常见场景与参数建议
- 前台长期运行服务:使用 Type=simple,配合 Restart=on-failure/always 实现异常自动拉起
- 优雅停机:Spring Boot 可处理 SIGTERM,设置 SuccessExitStatus=143;必要时调整 TimeoutStopSec
- 资源与参数:通过 -Xms/-Xmx 控制堆内存,应用参数直接追加到 ExecStart 的 jar 命令后
- 工作目录与输出:设置 WorkingDirectory 便于相对路径读取配置;使用 journalctl 集中管理日志,或脚本重定向到文件(见下一节)
- 权限与安全:以专用系统用户运行(如 User=ubuntu),避免使用 root;必要时配置目录权限与日志目录可写
四 可选方式 Shell 脚本包装
- 适用场景:需要在启动前设置复杂环境变量或执行额外逻辑
- 示例脚本
/home/ubuntu/myapp/start.sh:#!/usr/bin/env bash export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH cd /home/ubuntu/myapp exec /usr/bin/java -Xms512m -Xmx1024m -jar app.jar --server.port=8080 > > /var/log/myapp.log 2> & 1 - 赋权与配置服务:
chmod +x /home/ubuntu/myapp/start.sh- 服务文件中将 ExecStart 指向脚本:
ExecStart=/home/ubuntu/myapp/start.sh - 注意:使用脚本时仍可结合 StandardOutput/StandardError 或重定向到文件进行日志管理
五 旧系统 SysVinit 方式简介
- 仅适用于 Upstart/SysVinit 的老版本 Ubuntu
- 步骤概要:编写带 LSB 头 的脚本 → 放入 /etc/init.d/ →
chmod 755→update-rc.d < 脚本名> defaults 90 - 现代 Ubuntu 推荐使用 systemd 替代
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Java服务如何配置
本文地址: https://pptw.com/jishu/781725.html
