如何停止运行Shell脚本中的后台进程
P粉722409996
P粉722409996 2023-09-03 18:16:08
0
1
639
<p>我正在尝试在后台运行mysqld以使用mysql客户端执行一些命令,但是当我将进程切换到前台时,我的脚本停止运行。这是我使用的脚本:</p> <pre class="brush:sh;toolbar:false;">set -m daemon="/usr/bin/mysqld --user=mysql --console --skip-name-resolve --skip-networking=0 $@" $daemon & exec echo "Test" exec fg %1 </pre> <p>我不是一个shell脚本编程专家,我在一些网站上查找并找到了这种执行命令的方法。</p>
P粉722409996
P粉722409996

全部回复(1)
P粉521748211

不。脚本在 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

顺便说一下:不清楚为什么您想在shell脚本中使用 fg。在交互式shell中,fg 只在脚本中没有功能。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!