方法一:使用 systemd 服务
systemd 是现代 Linux 系统中广泛使用的系统和服务管理器,通过创建一个 systemd 服务单元文件,可以方便地实现 JAR 包的开机自启。以下是具体步骤:
1. 创建服务单元文件
使用文本编辑器(如 nano)创建一个新的服务单元文件,通常存放在 /etc/systemd/system 目录下,文件名可以自定义,以 .service 结尾,例如 myjar.service:
sudo vi /etc/systemd/system/myjar.service
2. 编写服务单元文件内容
在打开的文件中添加以下内容,根据实际情况修改相关参数:
[Unit]
Description=My Java Application
After=network.target
[Service]
User=chao
#Group=chao
#SupplementaryGroups=adm cdrom sudo dip plugdev lxd
#SuccessExitStatus=143
ExecStart=/usr/bin/java -jar /home/chao/jar/tlias-web-management-0.0.1-SNAPSHOT.jar
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
替换自己的信息
User=chao # 替换为运行 JAR 包的普通用户
ExecStart=/usr/bin/java -jar /home/chao/jar/tlias-web-management-0.0.1-SNAPSHOT.jar # 替换为 JAR 包的完整路径
- [Unit] 部分:
- Description:对服务的描述信息。
- After:指定该服务在网络服务启动后再启动。
- [Service] 部分:
- User 和 Group:指定运行 JAR 包的用户和用户组。
- ExecStart:启动 JAR 包的命令。
- Restart:设置服务在异常退出时自动重启。
- RestartSec:服务重启的间隔时间。
- [Install] 部分:
- WantedBy:指定该服务在多用户模式下启动。
2.1查看当前用户所属用户组:
使用groups命令 在终端中输入groups并按下回车,即可查看当前用户所属的所有组。例如:
groups
输出可能类似于:
your_username : adm cdrom sudo dip plugdev ...
这表示当前用户your_username属于adm、cdrom、sudo、dip、plugdev等用户组。
3. 保存并退出文件,检查服务文件语法
按 esc 键 ,然后输入 :wq 后,按回车键退出并保存文件。
检查服务文件语法:使用 systemd-analyze 命令检查服务文件的语法是否正确:
sudo systemd-analyze verify /etc/systemd/system/myjar.service
如果存在语法错误,会输出相应的错误信息,根据错误信息修改服务文件。
4. 启用并启动该systemd服务
sudo systemctl daemon-reload
然后,启动服务并设置开机自启
sudo systemctl start myjar.service
sudo systemctl enable myjar.service
- start 命令用于立即启动服务。
- enable 命令用于设置服务开机自启。
5. 测试服务是否能够在失败后自动重启
你可以手动停止服务来测试自动重启功能:
sudo systemctl stop myjar.service
7. 等待几秒钟,然后检查服务状态:
sudo systemctl status myjar.service
如果服务正常运行,会显示 active (running) 状态。
8. 查看服务日志进行故障排除
如果服务没有按预期工作,你可以查看服务日志来获取更多信息:
sudo journalctl -u myjar.service
这将显示服务的所有日志条目,包括任何错误消息,这有助于你进行故障排除。
通过遵循这些步骤,你可以在Ubuntu 20.04上设置开机自启jar服务,并确保在启动失败时无限自启动。
方法二:使用 crontab 定时任务
crontab 是 Linux 系统中用于定期执行任务的工具,通过在 crontab 中添加一条开机启动的任务,也可以实现 JAR 包的开机自启。以下是具体步骤:
1. 编辑当前用户的 crontab 文件
crontab -e
如果是第一次编辑,会提示选择编辑器,选择你熟悉的编辑器(如 vim)即可。
2. 添加开机启动任务
在打开的文件中添加以下内容,根据实际情况修改 JAR 包的路径:
@reboot /usr/bin/java -jar /home/chao/jar/tlias-web-management-0.0.1-SNAPSHOT.jar &
@reboot 表示在系统开机时执行该命令,& 表示让命令在后台运行。
3. 保存并退出文件
4. 验证 crontab 任务
crontab -l
确保刚才添加的任务已经正确显示。
以上两种方法都可以实现 JAR 包在 Ubuntu 服务器开机时自动启动,推荐使用 systemd 服务的方式,因为它提供了更强大的服务管理功能。
评论前必须登录!
注册