MongoDB 崩溃时自动重启

Fla*_*ien 7 upstart mongodb ubuntu-12.04

我在 Ubuntu 服务器上运行 MongoDB。它使用 upstart 脚本在机器启动时启动 mongod。我注意到如果进程崩溃,它不会重新启动。

我怎样才能确保如果它崩溃了,mongod 进程会重新启动?

Fla*_*ien 12

我自己找到了答案:最简单的方法是在 MongoDB ( /etc/init/mongodb.conf)安装的 upstart 脚本的末尾添加以下两行:

respawn
respawn limit 10 90
Run Code Online (Sandbox Code Playgroud)

如果它终止,这将尝试重新启动进程,如果它在 90 秒内崩溃超过 10 次,则停止。


小智 5

我不认为新版本的 MongoDB/Ubuntu 使用 upstart。以下是我在 Ubuntu 18.04、MongoDB 4.0.2 上实现此目标的方法:

/lib/systemd/system/mongod.service在文本编辑器中打开:

sudo nano /lib/systemd/system/mongod.service
Run Code Online (Sandbox Code Playgroud)

添加Restart=on-failureRestartSec=10以便在服务器以非零退出代码退出时 10 秒后重新启动服务器:

[Service]
User=mongodb
Group=mongodb
EnvironmentFile=-/etc/default/mongod
Restart=on-failure
RestartSec=10
...
Run Code Online (Sandbox Code Playgroud)

Restart=always如果您想重新启动,无论退出代码如何,请使用。

然后您可以systemctl daemon-reload重新启动服务,或者只是重新启动服务器。