解决因为终端打印造成的java程序假死

问题状态:

java 程序
日志采用 log4j
运行时由另一个管理进程拉起,程序在后台运行。

现象:

程序后台运行时,运行一段时间后假死

分析原因:

尝试打印输出,定位假死的具体位置,发现出现假死的位置不固定,甚至是基本的日志输出都有问题
尝试手动启动,程序能正常运行,并且发现有大量的打印输出到终端

结论:

程序在终端有打印信息输出,在后台运行后,信息无法输出到终端,
打印信息过多后,缓冲区写满,程序停止运行,造成假死现象

解决方法:

1 后台运行的程序不打印输出信息到终端
由于程序采用log4j,所以屏蔽 log4j.xml 配置中的 Console 配置输出
2 使用 nohup 将打印信息追加到 nohup.out 文件中,这种会随着时间的累计生成很大的文件

 

 
 

转载于:https://www.cnblogs.com/etangyushan/p/6909437.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值