问题场景:在一个集群上,有root用户和user用户,当user运行一些和java相关的程序时,root用户使用jps命令会出现”process information unavailable”,使root用户不知道这是谁的进程,是什么进程。如下图所示:

首先jps的进程信息是存储在/tmp/hsperfdata_{user}中,当我们使用root操作jps时,发现其他用户启动的java进程的tmp文件是读不了的。这个用户文件夹里的权限是600,root没有读的权限。可以使用下面的命令查看这些进程:

sudo -u {username} {user_jdk-path};  
sudo -u ericson /user/java/jdk1.7.0_80/bin/java

root应该拥有全部权限,这不科学?
原因应该是user用的java和root的java不是一个,也就是说user配置了自己的java环境。