我需要帮助制定一个 crontable 条目,以确保 MongoDB 服务(守护程序)在特定端口上运行,如果没有,则启动它。我希望将其设置为如果 MongoDB 崩溃,它会自动重新启动。我希望每五分钟检查一次。我已经对其他服务器进程执行了此操作,但如果这些服务发现它们要绑定的端口已被使用,它们就会自动退出。作为 MongoDB 新手,我担心的是,我最终会每五分钟启动另一个 MongoDB 实例,而不是确保只加载一个实例。例如,这是我一直运行的聊天机器人服务的 crontable 条目:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * cd /home/[username]/ChatScript; ./LinuxChatscript32 2>/home/[username]/cronserver.log
我如何为 MongoDB 创建类似的东西?
答案1
*/5 * * * * /bin/bash -c 'if ! pgrep mongod; then /usr/sbin/service mongodb start; fi'
答案2
看一眼 导师。
它应该正是这么做的。
答案3
对于现在偶然发现这一点的人来说,我发现 Monit 对此最有用。https://mmonit.com/它可以监控端口并在必要时重新启动,以及监控 RAM/CPU 的使用情况。
我建议这样做的原因是,根据我的经验,mongodb 可能看起来处于在线状态并且进程仍在运行,但由于 CPU 使用率高或 RAM 不足而没有响应。