当前位置: 首页 > 图灵资讯 > 技术篇> ubuntu重启Java自启动

ubuntu重启Java自启动

来源:图灵教育
时间:2023-12-11 16:46:42

Ubuntu重启Java自启动教程1. 整体流程

下面是实现"Ubuntu重启Java自启动Java"整体流程:

步骤描述创建Shell脚本文件2在Shell脚本文件中添加Java程序3创建Systemd服务单元文件4并启动Systemd服务5,以验证Java程序在重启时是否自动启动

在下面的教程中,我们将逐步详细说明每个步骤所需的操作和代码。

2. 创建shell脚本文件

首先,我们需要为Java程序创建一个Shell脚本文件。使用以下命令创建一个新的Shell脚本文件:

sudo nano /usr/local/bin/start-java.sh

然后在Shell脚本文件中添加以下代码:

#!/bin/bashjava -jar /path/to/your/java-program.jar

在这里,你需要将就/path/to/your/java-program.jar用实际的Java程序路径替换。

3. 创建Systemd服务单元文件

接下来,我们需要创建一个Systemd服务单元文件,以将Shell脚本文件设置为自动启动。使用以下命令创建一个新的Systemd服务单元文件:

sudo nano /etc/systemd/system/java-autostart.service

然后在服务单元文件中添加以下代码:

[Unit]Description=Java AutostartAfter=network.target[Service]ExecStart=/usr/local/bin/start-java.shWorkingDirectory=/usr/local/binStandardOutput=journalStandardError=journalSyslogIdentifier=java-autostart[Install]WantedBy=multi-user.target
4. 启用并启动Systemd服务

现在,为了在重启时自动启动Java程序,我们需要启用和启动Systemd服务。使用以下命令启用服务:

sudo systemctl enable java-autostart.service

然后,使用以下命令启动服务:

sudo systemctl start java-autostart.service
5. 验证Java程序是否自动启动

最终,在重新启动时,我们需要验证Java程序是否自动启动。使用以下命令查看服务状态:

sudo systemctl status java-autostart.service

如果Java程序成功启动,您应该看到以下类似的输出:

● java-autostart.service - Java Autostart   Loaded: loaded (/etc/systemd/system/java-autostart.service; enabled; vendor preset: enabled)   Active: active (running) since Mon 2021-01-01 00:00:00 UTC; 1min ago Main PID: 1234 (start-java.sh)    Tasks: 1 (limit: 1234)   Memory: 10.0M      CPU: 1s   CGroup: /system.slice/java-autostart.service           └─1234 /bin/bash /usr/local/bin/start-java.sh

这样,您就可以成功地将Java程序设置为在Ubuntu重启时自动启动。

类图

以下是一个简单的类图,展示了本教程涉及的类与它们之间的关系:

classDiagram    class Developer {        +name: String        +experience: int        +teachUbuntuAutoRestartJavaProgram(): void    }    class NoviceDeveloper {        +name: String        +experience: int        +learnUbuntuAutoRestartJavaProgram(): void    }    class ShellScript {        +path: String        +addJavaProgram(): void    }    class SystemdService {        +unitFilePath: String        +enableAndStart(): void    }    class JavaProgram {        +jarFilePath: String        +start(): void    }    Developer --> NoviceDeveloper    NoviceDeveloper --> ShellScript    NoviceDeveloper --> SystemdService    ShellScript --> JavaProgram    SystemdService --> JavaProgram
关系图

以下是一个关系图,显示了本教程中所涉及的组件之间的关系:

erDiagram    Developer ||--o{ NoviceDeveloper : "教授"    NoviceDeveloper ||--o{ ShellScript : "使用"    NoviceDeveloper ||--o{ SystemdService : "使用"    ShellScript ||--o{ JavaProgram : "添加"    System