一种实现方式是(metaq是这种方式):
1.程序启动时写临时文件(亦可写到其他位置,如建立zookeeper永久节点)
2.注册ShutdownHook,在实现中删除临时文件
3.下次文件启动时,先判断临时文件是否存在,如果存在,则起线程对异常信息进行处理
liunx下kill -9不会使shutdownhook执行,eclipse调试下直接关闭也不会执行。使用kill -15可以使shutdownhook执行,具体可参考http://kenwublog.com/kill-java-correctly,http://blog.csdn.net/raintungli/article/details/7178472