linux 实现jar开机自启
时间: 2023-07-20 12:18:49 浏览: 54
在 Linux 系统中,可以通过 Systemd 来实现 jar 包开机自启动,下面是具体的实现方法:
1. 编写服务配置文件
首先,你需要编写一个 Systemd 配置文件,后缀名为 .service,这个文件描述了你要启动的服务的相关信息,包括服务的名称、描述、启动命令等。这个文件需要保存在 `/etc/systemd/system/` 目录下,以 root 用户身份进行操作。
例如,如果你要编写一个自启动的 jar 包服务的配置文件,可以使用以下命令创建一个名为 `myapp.service` 的文件:
```bash
sudo vim /etc/systemd/system/myapp.service
```
然后在文件中输入以下内容:
```
[Unit]
Description=My Application
After=network.target
[Service]
User=myuser
WorkingDirectory=/path/to/myapp
ExecStart=/usr/bin/java -jar myapp.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
```
这个配置文件中,`[Unit]` 段描述了服务的基本信息,如服务名称和描述,以及该服务在启动时需要等待的其他服务。`[Service]` 段描述了服务的启动方式,包括启动命令、工作目录和退出状态码等。`[Install]` 段描述了服务的安装信息,包括服务的启动级别和依赖关系。
其中,`ExecStart` 指定了 jar 包的启动命令,`WorkingDirectory` 指定了 jar 包的工作目录,`User` 指定了服务运行的用户,`SuccessExitStatus` 指定了正常退出状态码。
2. 重新加载 Systemd 配置文件
在编写完 Systemd 配置文件后,需要执行以下命令来重新加载配置文件:
```bash
sudo systemctl daemon-reload
```
这个命令会重新加载 `/etc/systemd/system/` 目录下的所有配置文件,使得新的配置文件生效。
3. 启动服务并设置自启动
完成以上两个步骤后,就可以通过以下命令来启动服务:
```bash
sudo systemctl start myapp
```
如果要设置服务开机自启动,可以使用以下命令:
```bash
sudo systemctl enable myapp
```
这个命令会在 `/etc/systemd/system/multi-user.target.wants/` 目录下创建一个符号链接,指向 `/etc/systemd/system/myapp.service` 文件,从而使得 jar 包服务在系统启动时自动被启动。
至此,你就成功地实现了 Linux 系统 jar 包服务的开机自启动。