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进程并且它保持活动状态:)

相关内容