我试图在bg中运行mysqld,用mysql客户端执行一些命令,但当我创建进程时,我的脚本停止运行,这是我使用的脚本
set -m
daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@"
$daemon &
exec echo "Test"
exec fg %1
我不是shell脚本的专家,我查看了一些网站,发现了执行命令的方法。
否。脚本在exec echo "Test"
之后停止。exec
用后面的命令替换当前进程(shell脚本(
daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@"
$daemon &
exec echo "Test"
echo "Second Test"
exec fg %1
解决方案很简单:不要使用exec
。
BTW:目前还不清楚您为什么要在shell脚本中执行fg
。fg
在交互式shell中只有一个函数,而在脚本中没有。
好的,非常感谢,我找到了这个命令来做我想做的事情,它可以工作
sh /scripts/run.sh & sleep 2
&& mysql -utest -ppass mydb <
/docker-entrypoint-initdb.d/mydb.sql
对于前景过程,我不知道fg只在交互式中工作,谢谢你的精确性。