如何使服务等到MySQL服务在启动时启动?

时间:2019-05-23 10:01:08

标签: shell amazon-ec2 cron

我已经编写了一个服务,该服务仅在实例启动时启动MySQL服务后才能启动。

操作系统:Centos 6.10。

如何使服务等到MySQL服务在启动时完全启动?

我尝试在/etc/init.d中创建启动服务 启动服务脚本:

# chkconfig: 345 99 01
# description: service startup script
### BEGIN INIT INFO
# Required-Start: mysqld
### END INIT INFO
cd /path_of_server
./start.sh

我面临的问题是,我的服务在MySQL服务完全启动之前执行。

2 个答案:

答案 0 :(得分:1)

这可能会帮助您:

systemctl为此具有一个is-active子命令:

systemctl is-active --quiet service

如果服务处于活动状态,将退出,状态为零,否则为非零,使其非常适合脚本:

systemctl is-active --quiet service && echo Service is running

如果省略--quiet,也会将当前状态输出到其标准输出。

在shell脚本中进行无限循环,并在循环内使用上述命令检查MySQL是否正在运行。

一旦发现MySQL正在运行,就启动服务并退出循环或脚本。

答案 1 :(得分:0)

请浏览this存储库并查看wait-fot-it.sh

您必须在其受尊敬的脚本文件中添加wait-for-it.sh脚本文件,并将./wait-for-it.sh mysql:3306 --timeout=30放在服务脚本文件的启动逻辑之前。希望对您有所帮助。