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

Ani*_*are 5 shell cron amazon-ec2

我写了一个服务,它应该只在 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
Run Code Online (Sandbox Code Playgroud)

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

Aks*_*ani 1

这可能对您有帮助:

systemctl 有一个 is-active 子命令用于此目的:

systemctl is-active --quiet service
Run Code Online (Sandbox Code Playgroud)

如果服务处于活动状态,则将以状态零退出,否则以非零状态退出,这使其成为脚本的理想选择:

systemctl is-active --quiet service && echo Service is running
Run Code Online (Sandbox Code Playgroud)

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

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

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