私は2つのスクリプトを持っています。 1つはappiumを起動し、バックグラウンドで実行するようにし、もう1つはそれを終了します(またはそれがすべきことです)。
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コマンドをコピーして端末から直接実行すると機能します。なぜそんなことですか?どうすれば解決できますか?
PS:私はMacを使っていますが、これがどれほど関連性があるのかわかりません。
答え1
TL; DR私のスクリプトは、Appiumプロセスを終了する前に自動的に終了します。
問題は、私のスクリプト名にappiumがあることです。このコードは、$(ps aux | grep 'appium' | awk '{print $2}')
/path/to/kill_appiums.shスクリプトが実行されている/bin/bashのpidを取得します。その後、appiumプロセスを終了する必要があるスクリプトを終了するようです。これにより、誰もappiumプロセスを殺さずに生きることができます:)