我从官方网站下载了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.
可能是什么问题?
答案 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-reload
和 start
能够在超时之前完成。
正确的解决方法是优化 mongo 中的数据,这样它就不会花费将近 5 分钟的时间来启动。