java - 为什么我的spring boot应用会自动关闭?

标签 java linux spring-boot ubuntu

更新 :
我已按照作为 init.d 服务(系统 V)安装的 Spring Boot 部署进行安装。我成功启动了我的应用程序。但是,一天后。我的应用程序再次关闭......有什么方法可以帮助我吗?
我有一个名为 my.jar 的 spring boot 应用程序。我将它放入我的ubuntu服务器(20.04)并使用的命令nohup java -jar my.jar & .在最初的几个小时里,我的应用程序状态良好。但是,一两天后,它会自动关闭。
我已经看到我的应用程序的日志没有记录任何错误并在退出之前保存了最后一个正确的日志
目前的情况是我的申请很简单,只有很少的访问量。
根据我的猜测,似乎 ubuntu 杀死了我的进程不活动?
我的脚本如下,
停止.sh:

#!/bin/bash
PID=$(ps -ef | grep centre-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
            echo Application is already stopped
    else
                echo kill $PID
                    kill $PID
fi
运行.sh:
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh
开始.sh:
#!/bin/bash
nohup java -jar centre-0.0.1-SNAPSHOT.jar &
我需要我的应用程序一直运行。
有没有办法解决这个问题?

最佳答案

nohup更适合运行预计将在一段时间后结束的进程。例如运行一个冗长的批处理脚本。
至于为什么它被杀死,可能有很多原因:内存泄漏,服务器安全策略....服务器可能认为您的程序行为不正确。服务器日志,如dmesg/var/log/内容可能有一些关于它的线索。
你所说的关于你的应用程序接收 访问 感觉它更像是一种服务而不是脚本。
你可能想要
daemonize your program
.这将使您的程序与服务器可用性相关联。
Here是对 nohup 和守护进程之间差异的解释。
另请查看 this link at baeldung获取有关设置守护程序的帮助

关于java - 为什么我的spring boot应用会自动关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66352604/

相关文章:

linux - 在Linux终端中重命名文件

linux - 为什么 qemu 无法使用私有(private)虚拟网桥创建私有(private)网络?我得到 "network script/etc/qemu-ifup failed with status 256"“

java - 使用 @Scope ("prototype"从单例更改为原型(prototype))

c - Linux 上使用的 malloc 版本

angularjs - 一个项目中的 Spring Rest 和 Angular JS

java - springdoc-openapi-ui OAuth 2.0 授权代码流与 PKCE

java - 计算表达式 1 <= month <= 12

java - Java 中 float 的哈希码

java - 无法在具有 8GB RAM 的系统上将 xmx 设置为超过 4GB

java - 另一个类的 getResource()