java - docker 容器中的 Java 进程在 docker stop 后始终以状态 137 结束
问题描述
我有一个以脚本开头的 java 进程:
#!/bin/sh
exec java $JAVA_OPTS -cp "lib/*" com.example.Launcher
为了断言干净的码头关闭,我添加了以下关闭挂钩:
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable()
{
@Override
public void run()
{
LOGGER.info("SIGTERM received");
try
{
jettyServer.stop();
LOGGER.info("Shutdown completed");
System.exit(0);
}
catch(Exception e)
{
LOGGER.error(e.getMessage(), e);
}
}
}));
我在日志中看到SIGTERM received
,Shutdown completed
但docker inspect
始终显示状态 137。
我最近添加了System.exit(0)
,但这并没有改变任何东西。
我在这里做错了什么?
解决方案
我认为这是因为内存不足。在官方文档中,有解决方案。 https://success.docker.com/article/what-causes-a-container-to-exit-with-code-137
推荐阅读
- google-chrome - 我的扩展只能在 chrome webstore 中启用
- c# - 在 UWP 中将 BitmapImage 设置为 ImageSource 不起作用
- git - .gitignore 不匹配子目录
- hibernate - 会话仍然打开时没有会话错误
- fortran - Fortran 循环不工作
- c# - 从 MemoryStream 反序列化对象时出错
- css - 背景图片没有出现在我的网站上
- kotlin - 如何将具有可变数量参数的函数分配给单个变量?
- java - 通过 Java 和 Selenium 启动 Internet Explorer 时出现“OsProcess checkForError : CreateProcess error=193, %1 不是有效的 Win32 应用程序”
- javascript - Javascript隐藏和删除多个div出错