mysqld_safe完成启动时发出信号

时间:2013-09-11 05:28:30

标签: mysql

在我的部署脚本中,运行mysqld_safe后运行脚本来设置数据库。但是,当数据库设置运行时,尚未运行mysql进程。如何确保仅在mysql进程运行后运行数据库设置脚本?

这是脚本:

mysqld_safe >/tmp/spot.mysql.out 2>/tmp/spot.mysql.err &
mysql -u root < setup.sql

1 个答案:

答案 0 :(得分:1)

有办法。如果您的系统上有pidof(请查看which pidof),然后you could use

mysqld_safe >/tmp/spot.mysql.out 2>/tmp/spot.mysql.err &
while ! pidof mysql > /dev/null
do
    sleep 5
done
mysql -u root < setup.sql

我不确切地知道你需要多长时间才能运行mysqld_safe,但是,当你的shell退出时,它可能会因为SIGHUP而死亡。为避免这种情况,make it ignore SIGHUP

nohup mysqld_safe >/tmp/spot.mysql.out 2>/tmp/spot.mysql.err &
while ! pidof mysql > /dev/null
do
    sleep 5
done
mysql -u root < setup.sql