我从官方网站下载了 MongoDB。我还编写了 systemd 脚本以在 ubuntu 15.10 上运行它。直到今天它工作得很好。但今天,如果我尝试启动 MongoDB,它可以运行大约。30 秒然后关闭。在日志文件中我看到以下内容:
"[signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends"
Run Code Online (Sandbox Code Playgroud)
这是我的系统脚本:
[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
Run Code Online (Sandbox Code Playgroud)
我尝试删除“mongod.lock”但结果相同。今天,如果我尝试启动 Mongodb“sudo service mogodb start”,它只会挂起 ca。30 秒,然后回复:
Job for mongodb.service failed because a timeout was exceeded.
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
问题是文件命名不一致:在“mongodb.service”中
PIDFile=/server/mongodb-server/mongod.pid
Run Code Online (Sandbox Code Playgroud)
并在“/server/mongodb-server/mongodb.conf”中
pidFilePath: "/server/mongodb-server/mongodb.pid"
Run Code Online (Sandbox Code Playgroud)
我在 CentOS 主机上也遇到过类似的问题。根本原因是 mongo 在启动时有很多事情要做,并且启动时间为 4 分 47 秒。
肮脏的黑客解决方法是添加
TimeoutStartSec=400
Run Code Online (Sandbox Code Playgroud)
到 /usr/lib/systemd/system/mongod.service 然后systemctl daemon-reloadastart能够在超时之前完成。
正确的修复方法是优化 mongo 中的数据,这样启动时间就不会超过 5 分钟。
| 归档时间: |
|
| 查看次数: |
8729 次 |
| 最近记录: |