jps进程不可用作root用户

Reg*_*ret 5 java hadoop

我已经使用JDK 1.7.0_80在CentOS上成功安装了Hadoop CDH5.2.

进程启动并成功运行.但是当我尝试以root用户身份显示java进程列表时jps,它只返回ID而没有描述:

[root@elephant ~]# jps
11478 Jps
2871 -- process information unavailable
2972 -- process information unavailable
3146 -- process information unavailable
3611 -- process information unavailable
2796 -- process information unavailable
3445 -- process information unavailable
Run Code Online (Sandbox Code Playgroud)

如果我sud为hdfs,我可以看到它的进程描述:

[root@elephant ~]# sudo -u hdfs jps
2871 SecondaryNameNode
11495 Jps
2972 DataNode
2796 NameNode
Run Code Online (Sandbox Code Playgroud)

什么可能导致root不检索进程描述?

Ama*_*ose 5

所有这些pid都存储在/ tmp目录中.各个用户启动的进程将存储在目录/ tmp/hsperfdata_ {username}中.好像root用户似乎无法读取该文件.停止所有进程,清除/ tmp目录并再次启动所有进程.之后,再次尝试jps命令.

更新:

如果您使用的是openjdk,则会遇到此问题.要查看所有与hdfs相关的进程,您必须使用以下命令

sudo -u hdfs jps
Run Code Online (Sandbox Code Playgroud)

类似地,对于纱线工艺,您必须使用以下命令

sudo -u yarn jps
Run Code Online (Sandbox Code Playgroud)

如果您使用oracle jdk,则root用户的jps命令将列出所有进程,前提是JAVA_HOME已正确定义且$ JAVA_HOME/bin在您的PATH中.

  • 可以确认以root身份运行`jps`无法在oracle的`java完整版"1.7.0_80-b15"上显示vm数据 (2认同)