systemd无法启动MongoDB

时间:2015-12-31 16:29:00

标签: mongodb systemd

我从官方网站下载了MongoDB。我也编写了systemd脚本来在ubuntu 15.10上运行它。直到今天它工作得很好。但今天,如果我尝试启动MongoDB,它适用于ca. 30秒然后关闭。在日志文件中,我看到以下内容:

"[signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends"

这是我的系统脚本:

[Unit]
Description= MongoDB Server
After=network.target

[Service]
Type=forking
RemainAfterExit=yes
User=mongodb
Group=mongodb
PIDFile=/server/mongodb-server/mongod.pid
ExecStart=/server/mongodb-server/bin/mongod -f /server/mongodb-server/mongodb.conf


[Install]
WantedBy=multi-user.target

我试图删除" mongod.lock"但结果相同。 今天,如果我尝试启动Mongodb" sudo service mogodb start"它只是挂在ca. 30秒然后回复:

Job for mongodb.service failed because a timeout was exceeded.

可能是什么问题?

2 个答案:

答案 0 :(得分:2)

问题是文件命名不一致: 在" mongodb.service"

PIDFile=/server/mongodb-server/mongod.pid

和" /server/mongodb-server/mongodb.conf"

pidFilePath: "/server/mongodb-server/mongodb.pid"

答案 1 :(得分:2)

我在 CentOS 主机上遇到了类似的问题。根本原因是 mongo 在启动时有很多事情要做,并且需要 4 分 47 秒才能启动。

肮脏的黑客解决方法是添加

 TimeoutStartSec=400

到 /usr/lib/systemd/system/mongod.service 然后 systemctl daemon-reloadstart 能够在超时之前完成。

正确的解决方法是优化 mongo 中的数据,这样它就不会花费将近 5 分钟的时间来启动。