Shell Script - Como executar o script depois que o mysql estiver pronto?

3

Eu tenho um script (em um arquivo .sh ) para ser executado uma vez sempre que eu fiz o login. Mas eu tenho que ter certeza que o serviço mysql já está rodando antes do script principal no meu .sh executado.
Aqui está meu rascunho:

function check_mysql(){
    // script for checking mysql
    return status
}
mysqlstatus = check_mysql()
while mysqlstatus == false {
    mysqlstatus = check_mysql()
}
// once mysqlstatus == true
// my main script
// my main script
// my main script
// my main script

Como escrever o rascunho acima no script de shell?

    
por Oki Erie Rinaldi 14.11.2015 / 03:06

2 respostas

3

Finalmente encontrei a resposta! : D

while !(mysqladmin ping)
do
   sleep 3
   echo "waiting for mysql ..."
done
echo "starting the main script"
#main script
#main script
#main script
    
por Oki Erie Rinaldi 14.11.2015 / 04:17
2

OBRIGADO por trazer esse comando mysqladmin ping para minha atenção!

Vai ser uma grande ajuda ao lidar com o Docker.

Veja o que acabei fazendo:

    # Returns true once mysql can connect.
    mysql_ready() {
        mysqladmin ping --host=database --user=root --password=MYSQL_ROOT_PASSWORD > /dev/null 2>&1
    }

    while !(mysql_ready)
    do
       sleep 3
       echo "waiting for mysql ..."
    done
    
por Jon Pugh 12.07.2016 / 17:07