Linux脚本 - 自动检查服务是否运行 - 如没运行自动重启

一用户说,wordpress的站点,还在测试,为什么打不开,页面提示 Error establishing a database connection 了呢。登录查看,当时无mysql进程,可能当系统资源不够用时,系统强制退出了mysql数据库进程。

以下是在Debian 9 里,使用apt安装的mariadb数据库,设置了每隔三分钟检查mysql是否有运行,如没运行,自动启动。

过程:

1.数据库进程异常退出后,访问wordpress站点,提示 Error establishing a database connection 出错
auto-start-mysql-service-1.png

2.登录到系统,执行 ps aux | grep mysql ,无mysql进程
auto-start-mysql-service-2.png

3.执行 service --status-all ,列出当前注册为服务的名称,如有mysql服务
auto-start-mysql-service-3.png

4.wget https://raw.githubusercontent.com/sierracircle/services-checker/master/services # 下载自动启动服务的脚本

5.chmod +x services # 添加执行权限

6.vi services # 修改脚本内容,如可将邮件通知的邮箱地址 EMAIL 修改为自己的,修改要检测的服务名 SERVICES,本例是 mysql
auto-start-mysql-service-4.png

7.crontab -e # 添加自动化任务,每隔三分钟执行脚本 /root/services

# check on services every 3 minutes
*/3 *  * * * /root/services

auto-start-mysql-service-5.png
8.保存后,等约三分钟,脚本自动启动mysql数据库,wordpress可以正常访问了
auto-start-mysql-service-6.png

参考:

标签: mysql

添加新评论