停止:未知实例mongodb(Ubuntu)

sen*_*hil 28 ubuntu service restart mongodb

我是Mongodb的新手.当我运行以下命令时:

sudo service mongodb start
Run Code Online (Sandbox Code Playgroud)

它向我展示了"mongodb启动/运行,过程3566".但是当我尝试通过给出以下命令来停止时:

sudo service mongodb stop
Run Code Online (Sandbox Code Playgroud)

它显示停止:未知实例:.有人知道如何解决这个问题.

如果我给sudo服务mongodb重启,我收到以下消息:

stop: Unknown instance: 
mongodb start/running, process 3644
Run Code Online (Sandbox Code Playgroud)

PS:如果我只使用mongod,我可以启动服务器并通过给mongo连接mongo shell .

请建议我如何解决问题以及如何在提供服务mongodb启动后连接mongo shell .提前致谢.

Goi*_*arn 16

我刚碰到这个.机会是你的conf文件中的问题(显然,因为你重新安装了种子)

在mongodb.conf中,如果将其作为服务调用,则不要设置fork = true.这将阻止服务调用通过服务mongodb.conf status/stop/restart访问它.

但是,删除fork = True行可以缓解这个问题.

看评论; 使用其他解决方案,即使这个被接受.


Ale*_* P. 12

您收到Unknown instance错误的原因是因为upstart正在跟踪PID分叉mongod进程实例的错误.但是正确的解决方案是不通过fork=true从@GoingTharn建议的配置中删除行来在前台运行该进程,而是通过添加来帮助upstart捕获PID分叉进程的权限

expect daemon
Run Code Online (Sandbox Code Playgroud)

到了 /etc/init/mongodb.conf

  • 拜托,你能详细说明吗?也许复制正确的mongodb.conf文件,因为我没有exp与mongo,无法理解期待deamon :( (2认同)
  • 为什么禁用 fork 不是一个正确的解决方案?[mongodb 文档](http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--fork) 指出您应该将 mongodb 作为守护进程运行“通过使用 --fork 或使用控制处理守护进程的进程(例如,与 upstart 和 systemd 一样)” (2认同)

sen*_*hil -2

我自己修好了。以下是我所做的:

 apt-get install mongodb
Run Code Online (Sandbox Code Playgroud)

并覆盖.conf 文件。之后一切正常。我希望这会对某人有所帮助。