
我有兩個腳本,一個啟動 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進程並且它保持活動狀態:)