![mongodb 服务停止后不会重新启动](https://linux22.com/image/839739/mongodb%20%E6%9C%8D%E5%8A%A1%E5%81%9C%E6%AD%A2%E5%90%8E%E4%B8%8D%E4%BC%9A%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8.png)
目前我无法使用常规命令启动 mongodb sudo service mongodb start
。当我这样做时,我得到如下信息:
mongodb start/running, process 23387
但是随后没有运行这样的进程,并且 mongodb 日志没有显示任何新内容。但是 mongodb 会在重启时启动,并且可以用 停止它sudo service mongodb stop
。
这带来的不便比游戏停止更严重,但我很好奇——到底发生了什么?
答案1
事实证明start-stop-daemon
(由 init 脚本使用) 知道我从命令行运行的其他 mongodb 实例。当我停止这些实例时,我能够正常启动我的主 mongodb。
更持久的解决办法是告诉start-stop-daemon
创建一个 pid 文件并在确定 mongodb 是否已在运行时检查它。使用我的默认 ubuntu 安装 (1:2.0.6-1ubuntu4),init 脚本仅检查 mongodb 可执行文件是否正在运行 (--exec /usr/bin/mongod
在 中查找/etc/init/mongodb.conf
)。
答案2
另一种可能性是;当我们使用安装和检查 monggodb 时sudo
,mongodb 目录可能会错误地由“root”创建。
ll /var/lib/mongodb
因此,使用和ll /var/log/mongodb
命令检查目录。
如果所有者出现作为通过使用root
改变所有者mongodb
sudo chown mongodb:mongodb /var/lib/mongodb -R
我经历过!