文章目录
-
-
- 1. 使用 `systemd` 服务
-
- 步骤:
- 2. 使用 `cron` 的 `@reboot` 任务
-
- 步骤:
- 3. 使用 `init.d` 脚本(适用于较旧版本)
-
- 步骤:
- 推荐方案
-
为了确保在重启Ubuntu服务器后,让springboot的服务test.jar象 nohup java -jar test.jar &命令能自动运行,可以考虑使用几种不同的方法来实现这个目标。以下是几种常见的解决方案:
1. 使用 systemd 服务
创建一个 systemd 服务是最推荐的方法之一,因为它提供了更好的进程管理和控制。
步骤:
[Unit]
Description=Test Java Application
After=network.target
[Service]
User=your_username
ExecStart=/usr/bin/java -jar /path/to/test.jar
Restart=always
StandardOutput=append:/var/log/test.log
StandardError=append:/var/log/test.err
[Install]
WantedBy=multi-user.target
- 将 your_username 替换为运行Java应用程序的用户。
- 将 /path/to/test.jar 替换为你的JAR文件的实际路径。
- StandardOutput 和 StandardError 可选配置项,用于指定标准输出和错误日志文件的位置。
sudo systemctl daemon-reload
sudo systemctl start test.service
sudo systemctl enable test.service
sudo systemctl status test.service
2. 使用 cron 的 @reboot 任务
这种方法简单但功能有限,适合不需要复杂管理的场景。
步骤:
crontab -e
@reboot nohup /usr/bin/java -jar /path/to/test.jar > /dev/null 2>&1 &
- 确保将 /usr/bin/java 和 /path/to/test.jar 替换为正确的路径。
- > /dev/null 2>&1 表示将标准输出和标准错误重定向到空设备,以避免产生不必要的日志文件。
3. 使用 init.d 脚本(适用于较旧版本)
虽然现代Linux发行版更倾向于使用 systemd,但如果你使用的是较旧版本的Ubuntu,可以考虑创建一个 init.d 脚本。
步骤:
chmod +x /etc/init.d/test
sudo update-rc.d test defaults
推荐方案
对于现代Ubuntu系统,强烈建议使用 systemd 服务,因为它是官方支持的方式,提供了丰富的特性和更好的进程管理能力。此外,systemd 服务能够处理崩溃后的自动重启、日志管理等功能,使得应用更加稳定可靠。
评论前必须登录!
注册