Kill -9는 bash 스크립트에서는 작동하지 않지만 콘솔에서는 작동합니다.

Kill -9는 bash 스크립트에서는 작동하지 않지만 콘솔에서는 작동합니다.

나는 두 개의 스크립트를 가지고 있습니다. 하나는 appium을 시작하고 백그라운드에서 실행되도록 두고 다른 하나는 이를 종료합니다(또는 그것이 해야 할 일입니다).

Start_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 명령을 복사하여 터미널에서 직접 실행하면 작동합니다. 왜 그런 겁니까? 어떻게 해결할 수 있나요?

추신: 저는 Mac을 사용하고 있는데 이것이 얼마나 관련성이 있는지 잘 모르겠습니다.

답변1

TL;DR 내 스크립트는 Appium 프로세스를 종료하기 전에 자동으로 종료됩니다.

문제는 내 스크립트 이름에 appium이 있다는 것입니다. 이 코드는 $(ps aux | grep 'appium' | awk '{print $2}')/path/to/kill_appiums.sh 스크립트가 실행 중인 /bin/bash의 pid를 가져옵니다. 그런 다음 appium 프로세스를 종료해야 하는 스크립트를 종료하는 것 같습니다. 그러면 아무도 appium 프로세스를 죽이지 않고 살아있게 됩니다 :)

관련 정보