Java linux 服务自动终止
Java service auto kill on linux
我的 linux 服务器上有 运行 nohup java -jar sample.jar & 作为 Web 后端服务应用程序,但服务在几个小时后自动终止,需要重新 运行 命令。
我想知道是什么原因以及如何解决问题
I 运行 Spring 通过相同的命令启动,我只见过几次这种行为。结果是 JVM 运行 内存不足,它崩溃了。当我更改堆大小设置时,它再次坚如磐石。
在Linux上,一种可能是oomkiller
进程。这会监视似乎触发过度分页 activity 的进程,并向它们发送 SIGKILL
信号。 oom killer 的目的是防止分页系统 颠簸 ... 这会使整个系统崩溃。
如果是 oom killer 杀死了你的 Java 应用程序,你应该会在 /var/log/messages
或 /var/log/syslog
中看到一条日志消息。
解决方案可能很简单,只需减小 Java 应用程序的堆大小,使其全部适合可用的 物理 内存。或者,如果您的 Java 应用程序的堆使用量一直在增长,您可能需要在您的应用程序中寻找可能的内存泄漏。 (搜索有关查找 Java 内存泄漏的文章...)
我的 linux 服务器上有 运行 nohup java -jar sample.jar & 作为 Web 后端服务应用程序,但服务在几个小时后自动终止,需要重新 运行 命令。 我想知道是什么原因以及如何解决问题
I 运行 Spring 通过相同的命令启动,我只见过几次这种行为。结果是 JVM 运行 内存不足,它崩溃了。当我更改堆大小设置时,它再次坚如磐石。
在Linux上,一种可能是oomkiller
进程。这会监视似乎触发过度分页 activity 的进程,并向它们发送 SIGKILL
信号。 oom killer 的目的是防止分页系统 颠簸 ... 这会使整个系统崩溃。
如果是 oom killer 杀死了你的 Java 应用程序,你应该会在 /var/log/messages
或 /var/log/syslog
中看到一条日志消息。
解决方案可能很简单,只需减小 Java 应用程序的堆大小,使其全部适合可用的 物理 内存。或者,如果您的 Java 应用程序的堆使用量一直在增长,您可能需要在您的应用程序中寻找可能的内存泄漏。 (搜索有关查找 Java 内存泄漏的文章...)