Kill -9 無法在 bash 腳本中工作,但可以在控制台中工作

Kill -9 無法在 bash 腳本中工作,但可以在控制台中工作

我有兩個腳本,一個啟動 appium 並使其在後台運行,另一個則殺死它(或者這就是它應該做的)。

啟動_appium.sh:

nohup node $APPIUM --nodeconfig $CONFIG_PATH -a $IP_ADDRESS --port $APPIUM_PORT --chromedriver-port $CHROME_DRIVER_PORT --log $LOG_FILE > /dev/null 2>&1 &

Kill_all_appiums.sh:

kill -9 $(ps aux | grep 'appium' | awk '{print $2}')

然而,kill 腳本在執行時不起作用。如果我複製相同的kill命令並直接在終端中執行它,它確實有效。這是為什麼?

PS:我使用的是Mac,我不知道這有多相關。

答案1

TL;DR 我的腳本在終止 Appium 進程之前會自行終止。

問題出在我的腳本名稱中包含 appium 。程式碼$(ps aux | grep 'appium' | awk '{print $2}')取得正在執行 /path/to/kill_appiums.sh 腳本的 /bin/bash 的 pid。然後它似乎殺死了應該殺死 appium 進程的腳本。然後就沒有人殺死appium進程並且它保持活動狀態:)

相關內容