Java后台进程自动关闭如何排查

概述

 本文主要讲述Java后台进程自动关闭的排查思路。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请您参照以下步骤分析进程关闭的原因。

  1. 执行以下命令,检查是否使用nohup的方式。
    nohup java -jar xxx.jar > ./xxxx.log 2>&1 &
    说明:nohup运行命令可以使命令永久的执行下去。断开终端也不会受到影响。
  2. 检查是否为out of memory(内存溢出)。
    1. 此处以CentOS系统为例,执行以下命令检查。
      cat /var/log/messages | grep "memory" 
    2. 查看是否有out of memory相关信息。如果有此类信息,Java运行就有可能因为内存溢出导致进程被Kill掉。
  3. 检查系统是否中毒。
    有些挖矿病毒会kill系统资源占用高的进程,请检查一下系统内部是否有异常的进程。
  4. 检查是否是JVM致命错误。
    一般会生成hs_err_pid.log日志,具体操作请参见JVM致命错误日志(hs_err_pid.log)分析

适用于

  • 云服务器ECS