关于spring-boot工程部署到服务器,不能后台持续运行的问题

具体的问题就是,我在将spring-boot工程部署到服务器后(jar包形式),运行命令:

java -jar **.jar

程序正常启动,打印输出。
但是当我关闭终端模拟软件(我用的xshell),当前用户也就退出了。这个时候再去访问,就发现原来的spring-boot工程已经停止服务了。
是的……开始我是一脸蒙B的= = 原来不是这样的啊。

后来想了一下,是不是后台停止了。(不叨叨了 直接上解决办法):
运行命令:

nohup java -jar **.jar &

nohup: 不挂断的执行命令,忽略所有的挂断信号。 运行后台命令 最后加 &
在jar目录下会生成一个nohup.out文件,默认的log输出到这里了。

具体的nohup用法请自行查找。
上边如果有什么地方我说的不妥,欢迎吐槽。

Spring Boot项目是一个独立的Java应用程序,可以打包成一个可执行的JAR或WAR文件,然后部署到Linux系统上。为了在后台运行Spring Boot项目,通常会使用系统服务管理器如Systemd来控制。以下是部署和设置Spring Boot项目在Linux系统后台运行的基本步骤: 1. **准备可执行的JAR文件**: 首先,确保你的Spring Boot项目可以打包成一个包含所有依赖的可执行JAR文件。可以使用Maven或Gradle等构建工具来打包项目。 2. **传输JAR文件到Linux服务器**: 使用SCP、FTP或其他文件传输方法将JAR文件上传到Linux服务器的某个目录下,例如 `/opt/app`。 3. **创建Systemd服务文件**: 在Linux系统中,可以创建一个Systemd服务文件来管理Spring Boot应用。在 `/etc/systemd/system/` 目录下创建一个以 `.service` 结尾的文件,例如 `springbootapp.service`。服务文件的内容大致如下: ```ini [Unit] Description=Spring Boot Application After=syslog.target [Service] User=youruser ExecStart=/usr/bin/java -jar /opt/app/yourapp.jar SuccessExitStatus=143 TimeoutStopSec=10 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target ``` 这里假设你的用户是 `youruser`,JAR文件位于 `/opt/app/yourapp.jar`,并且使用的是系统默认的Java路径 `/usr/bin/java`。 4. **启用并启动服务**: 加载Systemd服务文件,启用服务,使其开机自启,并启动服务: ```bash sudo systemctl daemon-reload sudo systemctl enable springbootapp.service sudo systemctl start springbootapp.service ``` 5. **检查服务状态**: 检查服务是否正常运行: ```bash sudo systemctl status springbootapp.service ``` 6. **管理日志**: 你可以通过查看日志文件来检查应用的状态Spring Boot通常会将日志输出到控制台,但也可以配置为输出到文件中。 7. **日志管理**: 如果需要实时查看日志,可以使用 `journalctl` 或直接查看配置的日志文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值