执行下面的命令的时候报错,找不到对应路径下的pid文件。
zkserver stop
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Stopping zookeeper ... no zookeeper to stop (could not find file /usr/local/var/run/zookeeper/data/zookeeper_server.pid)
查了网上很多地方,很多人说是data路径中的空格问题,但是查了配置文件发现并不是。
错误信息里面说是pid文件找不到路径,所以,怀疑是读写权限或者是别的什么异常原因导致当时pid文件没有生成。
试着用sudo权限重新执行
sudo zkserver restart
Password:
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Stopping zookeeper ... no zookeeper to stop (could not find file /usr/local/var/run/zookeeper/data/zookeeper_server.pid)
/usr/bin/java
ZooKeeper JMX enabled by default
结果在目录下找到了对应的pid文件。
查看pid文件内容,发现就是一个进程id。这时候考虑修改pid文件的内容,把当前停不下来的进程编号写进去。
然后重新执行了zkserver stop命令。
sudo zkserver stop
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Stopping zookeeper ... STOPPED
搞定!
好吧,我又来更新这个文章了。
本来以为完了,结果过了几分钟,发现后台又莫名其妙存在了一个zookeeper的进程。
这不是见鬼了吗?难道被种马了?不现实啊。感觉肯定有后台莫名其妙自动启动的进程导致了这个问题。
果然,在MAC library 路径下的launchAgents目录下,存在了一个zookeeper的自动启动plist文件
果断用清理软件清除掉,之后后台的那个zookeeper的进程也就自动没了。
docker容器启动zookeeper镜像终于不再报2181端口被占用的错误了。
Comments
Post a Comment