宝塔面板安装的mongodb数据库,但是缺少一个进程守护工具。
只能通过面板的定时任务每分钟去检查端口27017的链接数并输出,
如果链接数为了0,就重启mongodb服务。
#!/bin/bash
current=$(date +%H.%M)
p27017_procnum=`netstat -nat | grep -i "27017" | wc -l`
echo "当前 "$current" 端口27017连接数 "$p27017_procnum
if [ $p27017_procnum -eq 0 ]; then
chown -R mongo:mongo /tmp/mongodb-27017.sock
chmod -R 700 /tmp/mongodb-27017.sock
echo "/etc/init.d/mongodb start..."
/etc/init.d/mongodb start
fi
也许有同学会担心,服务没有出问题,就是没有客户端来连接,这种情况。
对与这种情况大家要清楚mongdo的链接类似于mysql的长连接。也就是只要有一次连接,这个连接就会保持很长一段时间,除非是你的mongodb是很长时间没有客户端使用,才会触发这种极端情况。这个每分钟检查的脚本只能属于临时应急措施。