问题现象:程序可以执行但不能正常工作。
系统版本:redhat linux 6.0 x86_64
Java版本:1.6.0
问题描述:JAVA程序用于收集apache ssl记录。它已正常运行超过1年。由于需要维护,程序已停止并手动恢复。停止前程序正常。运行,并始终收集记录。停止重新启动后,发现程序不再收集日志文件,但可以读取目标日志文件并显示读取的开始,但没有后续操作。
上下文:在发生错误之前未修改修改过程。目标日志文件的路径和名称尚未修改。文件的编码尚未修改。该程序以root用户身份安装,并以root用户身份运行。目前,出现文件权限。他们都是根。
我问系统管理员,操作系统没有变化。当然,这不是很可靠,因为不止一个人具有对系统的root访问权限。
处理问题分析:
1、卸载程序,操作失败
原因是已登录的用户是root用户,但不是root用户,而是添加了权限0的用户。系统中有两个具有root权限的用户。
删除具有root权限的非root用户后,卸载成功。
2、重新安装程序
安装正常,配置正常,与之前的配置一致,但仍无法解决问题。
3、构建在外部以测试环境
相同的程序,相同的配置,相同版本的系统,相同的目标日志文件,批准的测试。
4通过strace执行java进程后的
发现存在读取目标文件的动作和内容,但没有书面动作。
根据以前的测试分析,问题原因的初步分析必须基于操作系统,但由于对系统的了解有限,尚未发现java进程异常操作的原因。
我的主要问题是:为什么之前它已经正常运行并且在停止和再次运行后不正常?系统环境中的因素可能会导致此类问题。答:分别在普通机器和异常机器上启动程序,执行命令:
Ps -ef | grep java
观察两台机器上环境变量和java进程参数之间的差异。