如何停止執行Shell腳本中的背景進程
P粉722409996
P粉722409996 2023-09-03 18:16:08
0
1
698
<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 只在腳本中沒有功能。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板