jps命令无效
#启动zookeeper
$ sudo ./zkServer.sh start
[sudo] jjboom 的密码:
ZooKeeper JMX enabled by default
Using config: /home/jjboom/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
#啥都没有
$ jps
2972 Jps
#查看jps错误信息,还是没有(如果报错的话可能是/tmp/hsperfdata_${user_name}目录权限问题,chmod 755)
$ jps -J-Djps.debug=true -J-Djps.printStackTrace=true
2989 Jps
jps、jstack等都是通过
/tmp/hsperfdata_${user_name}
来确定正在运行的java进程pid等信息. 如果启动java进程时使用-Djava.io.tmpdir
后, jps等可能会由于找不到对应的数据而有问题
#尝试用root用户启动zookeeper
$ sudo -s
$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/jjboom/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
$ jsp
3175 Jps
3150 QuorumPeerMain
#ok,因为当前用户没有对目录/tmp/hsperfdata_${user_name}的写入权限,而启动zookeeper是用的root用户启的
#或者把zookeeper所在的目录给与当前用户权限也可以