Kill -9 no funciona desde el script bash pero funciona en la consola

Kill -9 no funciona desde el script bash pero funciona en la consola

Tengo dos scripts, uno inicia appium y lo ejecuta en segundo plano y el otro lo cancela (o eso es lo que debería hacer).

inicio_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}')

Sin embargo, el script de eliminación no funciona cuando se ejecuta. Si copio el mismo comando kill y lo ejecuto directamente en la terminal, funciona. ¿A qué se debe esto y cómo puedo solucionarlo?

PD: Estoy en una Mac, no sé qué tan relevante es eso.

Respuesta1

TL;DR Mi secuencia de comandos se suprime antes de finalizar el proceso de Appium.

El problema estaba en el nombre de mi script que contenía appium en su nombre. El código $(ps aux | grep 'appium' | awk '{print $2}')obtiene el pid del /bin/bash que ejecuta el script /path/to/kill_appiums.sh. Y luego parece que mata el script que debería matar el proceso de appium. Entonces no hay nadie que mate el proceso de appium y sigue activo :)

información relacionada