public class MonitorCpuApp {
public static Logger logger = Logger.getLogger(MonitorCpuApp.class);
public static void main(String[] args) { try {
                  while(true){
                  logger.info("休眠1小时继续");
                  Thread.sleep(1000 * 60 * 60);
                 } } catch (Exception e) {
logger.error(e.getMessage());
}
}}
这样一个简单的类,我放到linux上运行,每过一个小时就打印日志“休眠1小时继续”,但是打印了两三次就不打印了,用ps -ef |grep java 查看该进程,死掉了,请问这是怎么回事?

解决方案 »

  1.   

    碰到这种问题一般的处理方式是获取 dump 文件然后查看是哪里死掉了。因为只有一个线程,问题应该很容易找。
      

  2.   

    我改成休眠5分钟执行一次,到现在已经过去7个多小时了,还正常运行,要是休眠一个小时,就会出问题,这是怎么回事?难道时间太长了linux系统把我的进程停了??
      

  3.   

    什么异常都没有,没catch到任何异常,就是把休眠时间改短了就没事了,奇怪
      

  4.   

    不应该吧,我调成休眠5分钟,运行6、7个小时之后进程还是照样死掉,这个进程怎么会死掉?这个也不会因为内存泄漏等原因而kill掉啊