Systemd服务配置:开启自启Jar应用全指南

发布于:2025-06-26 ⋅ 阅读:(21) ⋅ 点赞:(0)

配置JAVA_HOME环境变量

查看java 版本以及具体按照目录

默认安装路径为 /usr/lib/jvm/
使用命令查看是否配置了 echo $JAVA_HOME 看是否有输出

  1. 配置文件 vi etc/profile
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
  1. 刷新配置
source /etc/profile
  1. 验证
 echo $JAVA_HOME

配置java 或 其他所有服务的启动命令 start.sh脚本

#!/bin/bash
nohup java -jar demo.jar &

cd /opt/nginx/sbin
./nginx

创建服务单元文件

/etc/systemd/system/ 目录下创建服务单元文件 jar-service.service,内容如下:

[Unit]
Description=Java Application Service
After=network.target

[Service]
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
ExecStart=/opt/jar/start.sh
WorkingDirectory=/opt/jar
User=root
Restart=always
RestartSec=5s
Type=forking
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

设置脚本权限

确保启动脚本 /opt/jar/start.sh 具有可执行权限,并归属正确用户:

chmod +x /opt/jar/start.sh
chown root:root /opt/jar/start.sh

激活服务

加载服务配置并启用自启动:

systemctl daemon-reload
systemctl enable jar-service
systemctl start jar-service

验证服务状态

检查服务运行状态和日志:

systemctl status jar-service
journalctl -u jar-service -b
# 实时日志
journalctl -u jar-service -f

重启系统测试自启动功能:

reboot

常见问题排查

脚本未执行时,检查 ExecStart 路径是否为绝对路径。权限不足时,调整 User 字段或配置 sudo 权限。若服务依赖网络,确保单元文件中包含 After=network.target。建议在 start.sh 脚本中添加日志输出功能以便调试。


网站公告

今日签到

点亮在社区的每一天
去签到