
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 :)