java - 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**
解决方案
推荐阅读
- hybris - 在 Hybris 中创建多个店面
- python - 如何使用 os.walk 或 glob.glob 获取目录中所有类型的文件扩展名
- angular - Angular上的浮动窗口显示下面的窗口?
- javascript - 如何使用复选框修复 vue 更新?
- android - 如何在一定时间后显示 ProgressBar
- gitlab - 如何仅使用 GitLab CI:仅使用:refs 进行更改?
- javascript - Javascript从正文返回某些字符串
- postgresql - 如何阻止 Liquibase updateSQL 生成最终出现在 SQL 中的启动和成功消息?
- java - GSON:JSON 反序列化为变量类型(列表/字符串)
- python - 在 Bokeh 中将方程绘制为线 - Python