首页 > 解决方案 > 调试 Java 进程在 1 小时内被杀死

问题描述

我正在开发一个需要使用 python 脚本调用的 Java 服务,有点像这样:

def start_java_service(self, set_id):
            p = subprocess.Popen(['nohup', 'java', '-jar', 'SetProcessor.jar', set_id], cwd='/path/to/jar/directory')

此 python 脚本将由Amazon SSM 代理调用。问题是,一旦 Java 服务完成 1 小时的执行,它就会自动终止。

谁能帮我解决这个问题的调试步骤?

编辑

我发现如果我自己运行 Java 服务,它工作得很好。但是,如果它被 SSM 调用,它会在1 小时后被杀死

标签: javaamazon-ssm-agent

解决方案


可能有各种原因,

  • 最常见的一种是消耗过多的内存,这可能会触发操作系统终止进程:要对此进行故障排除,只需运行

    dmesg | grep '杀死进程'

为了更好地了解内存的去向,您可以使用 jmap,

  • 在这种情况下,另一个可能是由于未处理的异常,请确保您正在检查日志。

推荐阅读