想了想还是把这个问题单独写个blog。
之前听说如果用ill -9 mongod之后mongodb服务无法开启问题的
解决方法是删除/data下的mongod.lock就能够正常使用了。
但是用mongodb2.6在fedora下实验的结果是kill -9并没有导致服务无法被开启。并且,pkill,kill -9都会导致mongo.lock的生成。并且,pkill和kill -9会将杀死mongod的主进程pid写在mongod.lock中,无论是是杀死mongod还是mongod的pid。
这或许是一件好事。不过早先版本的mongodb我没有实验,并且在其他服务器版本的linux(如centos等)或Ubuntu系列的linux上会不会出现“kill -9 mongod之后mongodb服务无法开启问题的”我没有实验,如果有人实验过请留言分享您的实验结果谢谢!
我的例子附上:
1[neil@neilhost bin]$ sudo ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs --fork 2about to fork child process, waiting until server is ready for connections. 3forked process: 5302 4child process started successfully, parent exiting 5[neil@neilhost bin]$ pstree -p |grep mongod 6 |-mongod(5302)-+-{mongod}(5303) 7 | |-{mongod}(5304) 8 | |-{mongod}(5305) 9 | |-{mongod}(5308) 10 | |-{mongod}(5309) 11 | |-{mongod}(5310) 12 | |-{mongod}(5311) 13 | |-{mongod}(5312) 14 | `-{mongod}(5313) 15[neil@neilhost bin]$ sudo kill -9 5302 16[sudo] password for neil: 17[neil@neilhost bin]$ pstree -p |grep mongod 18[neil@neilhost bin]$ 19[neil@neilhost bin]$ sudo ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs --fork 20about to fork child process, waiting until server is ready for connections. 21forked process: 5373 22child process started successfully, parent exiting 23[neil@neilhost bin]$ pstree -p |grep mongod 24 |-mongod(5373)-+-{mongod}(5374) 25 | |-{mongod}(5375) 26 | |-{mongod}(5376) 27 | |-{mongod}(5380) 28 | |-{mongod}(5381) 29 | |-{mongod}(5382) 30 | |-{mongod}(5383) 31 | |-{mongod}(5384) 32 | `-{mongod}(5385) 33 34[neil@neilhost bin]$ cd ../data 35[neil@neilhost data]$ ls 36journal local.0 local.ns mongod.lock 37[neil@neilhost data]$ sudo rm -rf *