要在 openEuler 中设置 jar 包自动启动,可通过systemd 服务实现,以下是详细步骤:

步骤 1:创建启动脚本

在 jar 包所在目录(如/usr/local/app/)创建启动脚本start_app.sh,内容如下:

bash

#!/bin/bash
# jar包绝对路径
JAR_FILE="/usr/local/app/your-app.jar"
# Java命令(可通过`which java`查询)
JAVA_CMD="/usr/lib/jvm/java-1.8.0-openjdk/bin/java"

# 启动jar包,可添加JVM参数(如内存配置)
$JAVA_CMD -jar $JAR_FILE

赋予脚本可执行权限:

bash

chmod +x /usr/local/app/start_app.sh

步骤 2:创建 systemd 服务文件

/etc/systemd/system/目录下创建服务文件(如your-app.service),内容如下:

ini

[Unit]
Description=Your Jar Application
After=network.target

[Service]
# 运行用户(建议使用普通用户,避免权限过高)
User=your_user
Group=your_group
# 启动脚本绝对路径
ExecStart=/usr/local/app/start_app.sh
# 进程退出时自动重启
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

步骤 3:加载并启用服务

执行以下命令使服务生效:

bash

# 重新加载systemd配置
systemctl daemon-reload
# 启用开机自启动
systemctl enable your-app.service
# 启动服务
systemctl start your-app.service

步骤 4:验证服务状态

执行systemctl status your-app.service,若显示active (running)则表示配置成功。

补充说明

  • 若启动失败,可通过journalctl -u your-app.service -xe查看详细日志,定位问题(如 jar 包路径错误、权限不足、Java 环境缺失等)。
  • 若需自定义日志输出,可在启动脚本中重定向日志,例如:$JAVA_CMD -jar $JAR_FILE > /usr/local/app/app.log 2>&1

要在 openEuler 中配置 JDK 环境变量,可通过修改 Shell 配置文件实现,以下是详细步骤:

步骤 1:确认 JDK 安装路径

首先找到 JDK 的安装目录,假设安装在/usr/lib/jvm/java-1.8.0-openjdk(可通过ls /usr/lib/jvm/查看具体版本)。

步骤 2:修改环境变量配置文件

选择以下任意一种方式配置(推荐修改/etc/profile实现系统级生效):

方式 1:系统级配置(所有用户生效)

编辑/etc/profile文件:

bash

vi /etc/profile

在文件末尾添加以下内容(替换为实际 JDK 路径):

bash

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
方式 2:用户级配置(仅当前用户生效)

编辑用户家目录下的.bash_profile(或.bashrc):

bash

vi ~/.bash_profile

添加与上述相同的环境变量配置。

步骤 3:使环境变量生效

执行以下命令加载配置:

bash

source /etc/profile  # 系统级配置生效
# 或 source ~/.bash_profile  # 用户级配置生效

步骤 4:验证配置

执行以下命令,若输出 JDK 版本信息则表示配置成功:

bash

java -version

补充说明

  • 若 JDK 为手动解压安装(非包管理器安装),需将JAVA_HOME替换为实际解压路径(如/opt/jdk1.8.0_xxx)。
  • 若需在 systemd 服务中使用 JDK 环境变量,可在服务文件的[Service]段通过Environment字段单独配置(如前文服务配置场景)。

这是执行systemctl enable blzk.service时的报错截图,属于系统服务配置场景,需解决服务无法启用的问题。

报错原因

服务文件缺少[Install]段的WantedBy配置,或配置不符合 systemd 规范,导致systemctl enable命令无法识别启用规则。

解决步骤
  1. 完善服务文件的[Install]编辑/etc/systemd/system/blzk.service,确保[Install]段包含:

    ini

    [Install]
    WantedBy=multi-user.target
    
  2. 重新加载并启用服务执行命令:

    bash

    systemctl daemon-reload
    systemctl enable blzk.service
    
  3. 验证启用状态执行systemctl is-enabled blzk.service,若输出enabled则表示启用成功。
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐