ubuntu开机自启java服务

135 阅读2分钟

步骤1:编写Java应用程序的启动脚本

首先,创建一个shell脚本来启动你的Java应用程序。例如,假设你的Java应用程序的JAR文件名为myapp.jar,你可以创建一个名为start_myapp.sh的脚本:

#!/bin/bash

# 设置Java应用程序的JAR文件路径
JAR_PATH="/opt/java-server/aokang-footwear-marketing.jar"

# 启动Java应用程序
nohup java -jar "$JAR_PATH" --spring.profiles.active=prod > /opt/java-server/aokang-footwear-marketing.log 2>&1 &

# 获取并输出应用程序的进程ID
echo $! > /var/run/aokang-footwear-marketing.pid

确保脚本具有可执行权限:

chmod +x /path/to/start_myapp.sh

步骤2:创建systemd服务单元文件

接下来,你需要创建一个systemd服务单元文件来管理你的Java应用程序。例如,你可以创建一个名为myapp.service的文件:

[Unit]
Description=aokang-footwear-marketing
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/java-server
ExecStart=/opt/java-server/start_aokang-footwear-marketing.sh
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
PIDFile=/var/run/aokang-footwear-marketing.pid

[Install]
WantedBy=multi-user.target

将上述内容保存为/etc/systemd/system/myapp.service

步骤3:重新加载systemd配置并启动服务

现在,重新加载systemd配置并启动服务:

sudo systemctl daemon-reload sudo systemctl start myapp

要使服务在系统启动时自动启动,可以启用它:

 sudo systemctl enable myapp

步骤4:验证服务状态

你可以检查服务的状态以确保它正在运行:

sudo systemctl status myapp

你应该看到类似以下的输出,表明服务正在运行:

root@iZuf61rqdpzwrcbgagt066Z:/etc/systemd/system# sudo systemctl status aokang-footwear-marketing.service
● aokang-footwear-marketing.service - aokang-footwear-marketing
     Loaded: loaded (/etc/systemd/system/aokang-footwear-marketing.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2025-03-13 17:37:27 CST; 4min 27s ago
   Main PID: 4491 (java)
      Tasks: 50 (limit: 4200)
     Memory: 456.3M
        CPU: 25.265s
     CGroup: /system.slice/aokang-footwear-marketing.service
             └─4491 java -jar /opt/java-server/aokang-footwear-marketing.jar --spring.profiles.active=prod

Mar 13 17:37:27 iZuf61rqdpzwrcbgagt066Z systemd[1]: Started aokang-footwear-marketing.
Mar 13 17:38:09 iZuf61rqdpzwrcbgagt066Z systemd[1]: /etc/systemd/system/aokang-footwear-marketing.service:13: PIDFile= references a path below legacy directory /var/run/, updating /var/run/aokang-footw>
lines 1-12/12 (END)