半小时检测一次,如果数据库停止了,那么启动。让Deepseek给写的脚本,但是一直不生效,因为起初它用 is-active 去判断MySQL 服务的状态。


后来改为用ps aux | grep -v grep | grep -q "mysqld";
完整代码如下:
#!/bin/bash
# 检测真实MySQL进程
if ps aux | grep -v grep | grep -q "mysqld"; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ MySQL进程正在运行"
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ MySQL进程未运行,尝试启动..."
# 使用SysV启动脚本并显示完整输出
echo "正在执行启动命令: /etc/rc.d/init.d/mysqld start"
/etc/rc.d/init.d/mysqld start # 直接输出到控制台
sleep 5
# 再次检测进程
if ps aux | grep -v grep | grep -q "mysqld"; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 🚀 MySQL启动成功"
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ‼️ MySQL启动失败!需人工介入!"
fi
fi
echo "---------------------------"
echo "监控检查完成!"
echo "---------------------------"
ShellScript

更多精彩内容:各种AI课程、技能课程、黑科技软件、网站小程序源码、副业小项目、PPT模板等精品素材、电商课程、推广引流课程等,尽在 云轩资源网 。