首页 > 解决方案 > Java 进程没有正常关闭

问题描述

我在 docker 容器中运行了一个很长的 Java 进程。它被内核关闭,如下面的日志所示。它会在没有 OutOfMemory Java 错误或异常的情况下失败。我进入 dmesg 发现这确实被内核关闭了。如何确保记录此异常并且进程正常关闭?我想捕捉那个错误并抛出一个特定于应用程序的异常。我应该使用 UnCaughtErrorHandler(Java 功能),然后在其中抛出我的应用程序特定异常吗?

demsg -T | grep java Wed Feb 20 04:09:23 2019] [ 3281] 503 3281 654479 38824 145 0 0 java [Wed Feb 20 04:09:23 2019] [11369] 0 11369 3253416 1757772 4385 0 0 **java [Wed Feb 20 04:09:24 2019] Out of memory: Kill process 11369 (java) score 914 or sacrifice child [Wed Feb 20 04:09:24 2019] Killed process 11369 (java) total-vm:13013664kB, anon-rss:7031088kB, file-rss:0kB, shmem-rss:0kB**

标签: javadockeramazon-ec2exception-handling

解决方案


推荐阅读