Shell Script - Come eseguire script dopo che mysql è pronto?

3

Ho uno script (in un file .sh ) da eseguire una volta ogni volta che ho effettuato l'accesso. Ma devo assicurarmi che il servizio mysql sia già in esecuzione prima dell'esecuzione dello script principale in .sh .
Ecco la mia bozza:

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

Come scrivere la bozza precedente nello script di shell?

    
posta Oki Erie Rinaldi 14.11.2015 - 03:06

2 risposte

3

Finalmente ho trovato la risposta! : D

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

GRAZIE per aver richiamato il comando ping mysqladmin sulla mia attenzione!

Sarà di grande aiuto quando si ha a che fare con Docker.

Ecco cosa ho finito per fare:

    # 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
    
risposta data Jon Pugh 12.07.2016 - 17:07

Leggi altre domande sui tag