下次自动登录
现在的位置:
& 综合 & 正文
zookeeper使用注意事项 – FAILED TO WRITE PID
启动zookeeper时, 偶尔会遇到一个错误:
$ bin/zkServer.sh start
JMX enabled by default
Using config: /home/nauhcud/workspace/zookeeper/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... bin/zkServer.sh: 162: cannot create /tmp/zookeeper/zookeeper_server.pid: Directory nonexistent
FAILED TO WRITE PID
查看进程发现zookeeper进程存在, 并可以正常使用. dataDir "/tmp/zookeeper/" 也在。文件zookeeper_server.pid不在。
查看启动脚本, 发现start逻辑如下:
nohup $J***A "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" & "$_ZOO_DAEMON_OUT" 2&&1 & /dev/null &
if [ $? -eq 0 ]
if /bin/echo -n $! & "$ZOOPIDFILE"
echo STARTED
echo FAILED TO WRITE PID
#这句说明写入Pid出现了问题
纵观整个脚本, dataDir没有出现, 因此, dataDir应该是zookeeper进程内部建立的, 并且有一定延迟, 因此将zookeeper进程id写入到dataDir下的pidfile时, dataDir还没有建立好, 因此就出现了上述情况.
解决办法很简单, 在写入pid之前先判断一下datadir是否存在, 让zookeeper有时间做完初始化, 然后再将pid写入即可.
nohup $J***A "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" & "$_ZOO_DAEMON_OUT" 2&&1 & /dev/null &
if [ $? -eq 0 ]
while [ ! -d `dirname $ZOOPIDFILE` ]
if /bin/echo -n $zkpid & "$ZOOPIDFILE"
echo STARTED
echo FAILED TO WRITE PID
&&&&推荐文章:
【上篇】【下篇】魔兽PID错误的原因(转载)
说明一下,这个解决pid错误的方法不仅仅适用于maphack,任何因为没有管理员权限而出现错误的***器,例如JJC&DropHack等,都可以用此方法解决。
另外,“游戏HACK论坛”(此论坛在我友情链接里面有)的&kiss_hj2&制作了修改game.dll的通用工具,此工具适合1.20a和1.20e并且只有32k,十分方便,建议大家下载使用。我还是放在工具下载里面。
经过我一下午的努力,终于解决了pid错误的问题,查阅了无数外文网站,深刻体会到了E文的重要性。。。。
先解释下pid&error到底是什么意思:PID&是“进程标识符”(Process&Identifier)&的缩写,这是创建进程时分配给它的唯一的***号码。(好吧,是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。)
而在使用maphack时,出现pid错误是指maphack找不到war3.exe进程的id,导致maphack无法工作。经过跟大家的交流,发现此问题出现的原因是:你当前登录windows(nt,2000或者xp)的帐户没有admin(管理员)权限。解决的方法出来了,那就是使用具有管理员权限的帐户登录。。。。。。开个玩笑,别打我。。后面我会给出解决办法。
在这先解释一下魔兽争霸和maphack的工作原理,暴雪为了反***器还是下了一定的功夫的,他们使用SetSecurityInfo()这个windows&api对war3的进程进行了保护,导致其他程序无法访问war3.exe的内存。但是maphack是专门针对魔兽争霸的,作者使用了一些方法(具体方法不写了,其实我也不太了解)来解决war3.exe的进程保护,使maphack可以访问war3.exe的内存从而达到***的目的。顺便提一下,maphack只是读取本机内存并在内存中做修改,不修改任何文件也不修改任何传输数据,所以不会产生任何异常的传输数据,只要你在游戏中不进行可疑的操作,对方是绝对不会有证据证明你***的。所以maphack曾经被称为完美的***。但是暴雪在BN的排位赛游戏中对war3.exe又进行了另外的保护,就目前来看还没有能完美***而不被发现的方法,这也是我告诉大家不要在BN排位赛中使用maphack的原因,你用了很快会被封cdkey的。
闲话多了,sorry。maphack使用的反保护方法需要管理员的权限,当你没有这个权限时,就会产生pid&error。我在网上看到一个解决方法是下载一个W3Loader.exe的文件,把这个文件放到魔兽争霸的目录中,运行这个文件就会启动war3.exe并且破解war3.exe进程的保护,之后你就可以使用maphack了,不会再出现pid错误的提示。
然而现在我们又面临一个问题,像我这种使用浩方进行游戏的该怎么办?如果先用浩方启动war3.exe的话,W3Loader.exe会无效,先用W3Loader.exe启动war3.exe的话,浩方就无法使用了。。。。。。。。。。
这个问题困扰了我好几天,我不停的上网寻找解决办法。看起来好像可以从3个方面下手:1.对浩方下手,2.对W3Loader.exe下手,3.对魔兽争霸下手。我先是尝试对浩方进行修改,因为我见过一些浩方优化版,认为浩方可以修改。但事实发现所谓的优化版只是修改了配置文件的几个参数而已,根本没有触及浩方的内核。我尝试对浩方进行反编译,结果失败。而且浩方的本质是虚拟局域网软件,只有通过他启动的进程会被纳入到虚拟的局域网,所以想通过浩方启动W3Loader.exe,W3Loader.exe再启动war3.exe的方法是行不通的,因为这样的话war3.exe并没有被纳入到虚拟的局域网,你就无法和别人连线。
然后我又想修改W3Loader.exe,这个文件很短,我本来认为会成功的。但是反编译W3Loader.exe发现它在启动war3.exe就在系统中做出了一些动作,然后配合启动war3.exe的过程才能破解war3.exe的保护。也许是因为我的汇编能力相当有限,最后还是没有搞定W3Loader.exe。如果有汇编高手的话欢迎指教,我希望能找个老师呢。
最后只剩对魔兽争霸本身动手了(当然你要是用黑客手段搞到管理员帐号也不失为一种办法)。我开始觉得我有些不自量力,而且war3.exe无法反编译。好在汇编的高手很多,好多老外在网上搞魔兽争霸的***器(maphack就是汇编搞出来的,才体会到汇编的重要性),所以有很多这方面的资料可以参考。翻了一大堆E文网站,资料,再加上我的尝试。。。。。。。当当当当,哈哈哈哈,我搞定了!!!
我修改了魔兽争霸的game.dll文件,成功的去除了对war3.exe的进程保护,经过测试,可以在非管理员帐户使用maphack了。唯一的不足是这种方法无法上BN,因为修改了文件,一上BN就会被提,所以建议在BN的custom&game(自定义游戏)中玩rpg的朋友使用W3Loader.exe而不要修改game.dll文件。
总结:1.在浩方或者局域网玩游戏的玩家要解决pid问题请下载game.dll这个文件覆盖魔兽争霸目录中的原文件。(注意备份原文件)
漏掉一个重点,我的魔兽争霸是1.20e的,所以这个破解的game.dll也是1.20e的,不是这个版本的请勿下载,否则你的魔兽将无法运行。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。