场景:
因为某些原因,服务器上的mongodb 挂掉了 ,需要自动重启mongodb
思路:
写个守护进程脚本,每分钟查看mongodb状态(这里查看mongodb进程是否存在),如果挂掉就重启
方法:
- 查看 mongodb 进程
ps -ef | grep 'mongod'
- 精准查询mongodb进程并去掉grep自己
ps -ef | grep 'mongod -f /www/server/mongodb/config.conf' | grep -v 'grep'
- 统计数量
ps -ef | grep 'mongod -f /www/server/mongodb/config.conf' | grep -v 'grep' | wc -l
- 写shell命令,这里注意的是脚本中的if条件 中括号两边要留有空格,否者会出现问题
注: 宝塔面板下面的Mongo启动脚本是在/etc/init.d/下面
#!/bin/bash
m=$(ps -ef | grep 'mongod -f /www/server/mongodb/config.conf' | grep -v 'grep' | wc -l);
if [ $m -ne 1 ]; then
/etc/init.d/mongodb start
fi
- 把上面的Shell命令添加到宝塔的定时任务中,时间设置为每分钟,也可以自行添加到系统的定时任务中 /etc/crontab
脚本参考: https://blog.csdn.net/weixin_37933545/article/details/128670451