如果崩溃,自动重新启动MongoDB

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

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

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

 respawn respawn limit 10 90 

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

我想你想要像Monit或God这样的东西在停止/崩溃时自动重启服务。 您对崩溃本身的描述会提示OOM Killer ,可以通过在主机上configuration一些交换空间来避免这种情况。

首先,你应该明白为什么系统服务崩溃了。 缺乏记忆? 错误的库? 错误或不更新的软件包? 你使用MongoDB的软件工作不正常?

在不幸的情况下,你不能达到一个答案,你可以暴力强制你的系统:我会定期检查,如果mongod PID文件存在,它应该存储在/ var / run的地方,如果不是, service mongod start

你可以使用Supervisord ,这个工具可以重新启动你需要的任何东西,configuration起来非常简单。

基于接受的答案(因为我没有足够的代表评论)

Respawn不是一个mongoconfiguration参数,它是用于新build服务configuration文件的。

 respawn respawn limit 10 90 

数字海洋有一个很好的教程,使用新贵和systemd(新)。 https://www.digitalocean.com/community/tutorials/how-to-configure-a-linux-service-to-start-automatically-after-a-crash-or-reboot-part-1-practical-examples