正文
解决因为终端打印造成的java程序假死
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
问题状态:java 程序日志采用 log4j运行时由另一个管理进程拉起,程序在后台运行。现象:程序后台运行时,运行一段时间后假死分析原因:尝试打印输出,定位假死的具体位置,发现出现假死的位置不固定,甚至是基本的日志输出都有问题尝试手动启动,程序能正常运行,并且发现有大量的打印输出到终端结论:程序在终端有打印信息输出,在后台运行后,信息无法输出到终端,打印信息过多后,缓冲区写满,程序停止运行,造成假死现象解决方法: 后台运行的程序不打印输出信息到终端
由于程序采用log4j,所以屏蔽 log4j.xml 配置中的 Console 配置输出
使用 nohup 将打印信息追加到 nohup.out 文件中,这种会随着时间的累计生成很大的文件
程序后台运行时,运行一段时间后假死
分析原因:尝试打印输出,定位假死的具体位置,发现出现假死的位置不固定,甚至是基本的日志输出都有问题尝试手动启动,程序能正常运行,并且发现有大量的打印输出到终端结论:程序在终端有打印信息输出,在后台运行后,信息无法输出到终端,打印信息过多后,缓冲区写满,程序停止运行,造成假死现象解决方法: 后台运行的程序不打印输出信息到终端
由于程序采用log4j,所以屏蔽 log4j.xml 配置中的 Console 配置输出
使用 nohup 将打印信息追加到 nohup.out 文件中,这种会随着时间的累计生成很大的文件
程序在终端有打印信息输出,在后台运行后,信息无法输出到终端,
打印信息过多后,缓冲区写满,程序停止运行,造成假死现象
解决方法: 后台运行的程序不打印输出信息到终端
由于程序采用log4j,所以屏蔽 log4j.xml 配置中的 Console 配置输出
使用 nohup 将打印信息追加到 nohup.out 文件中,这种会随着时间的累计生成很大的文件
后台运行的程序不打印输出信息到终端
由于程序采用log4j,所以屏蔽 log4j.xml 配置中的 Console 配置输出
使用 nohup 将打印信息追加到 nohup.out 文件中,这种会随着时间的累计生成很大的文件