0

在我的部署脚本中,我在运行后运行一个脚本来设置我的数据库mysqld_safe。但是当数据库设置运行时,还没有任何mysql进程在运行。如何确保仅在mysql进程运行后才运行数据库设置脚本?

这是脚本:

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

1 回答 1

1

有办法。如果您pidof的系统上有(检查which pidof),那么您可以使用

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运行多长时间,但是,你启动它的方式,它可能会因为SIGHUP你的 shell 退出而死。为避免这种情况,请忽略 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
于 2013-09-11T05:43:56.287 回答