Linux脚本 - 自动检查服务是否运行 - 如没运行自动重启
一用户说,wordpress的站点,还在测试,为什么打不开,页面提示 Error establishing a database connection 了呢。登录查看,当时无mysql进程,可能当系统资源不够用时,系统强制退出了mysql数据库进程。
以下是在Debian 9 里,使用apt安装的mariadb数据库,设置了每隔三分钟检查mysql是否有运行,如没运行,自动启动。
过程:
1.数据库进程异常退出后,访问wordpress站点,提示 Error establishing a database connection
出错
2.登录到系统,执行 ps aux | grep mysql
,无mysql进程
3.执行 service --status-all
,列出当前注册为服务的名称,如有mysql服务
4.wget https://raw.githubusercontent.com/sierracircle/services-checker/master/services
# 下载自动启动服务的脚本
5.chmod +x services
# 添加执行权限
6.vi services
# 修改脚本内容,如可将邮件通知的邮箱地址 EMAIL
修改为自己的,修改要检测的服务名 SERVICES
,本例是 mysql
7.crontab -e
# 添加自动化任务,每隔三分钟执行脚本 /root/services
# check on services every 3 minutes
*/3 * * * * /root/services
8.保存后,等约三分钟,脚本自动启动mysql数据库,wordpress可以正常访问了
参考: