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 服务完全启动之前执行。
这可能对您有帮助:
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 正在运行,就启动服务并退出循环或脚本。