canalizar pid para matar con Ctrl-c

canalizar pid para matar con Ctrl-c

Entonces tengo una tarea Grunt ejecutando este comando:

java -jar build/lib/plovr.jar serve ./someroot' + configurationFile + ' & grunt watch:sass

El problema es que, por alguna razón, el proceso de Java sigue ejecutándose cuando presiono Ctrl-c en el Shell.

Mi idea de resolver esto sería canalizar el pid a una variable de sesión y agregar otro comando para eliminar el mismo pid.

No tengo idea de cómo puedo lograr esto, así que necesito ayuda. Además, si se te ocurre una forma más sencilla, te lo agradeceremos mucho.

Muchas gracias

ACTUALIZAR

el problema se resolvió solo cuando cambié el orden de los comandos que se ejecutaban, así

grunt watch && java -jar

Entonces, cuando hago Ctrl-c, el proceso de Java se elimina.

De cualquier manera, sería bueno si alguien pudiera enseñarme cómo ejecutar mi primer enfoque.

Respuesta1

Cuando coloca un signo & en la línea de comando, coloca el comando que lo precede en segundo plano, razón por la cual Ctrl-C no lo detiene. Para matarlo puedes matar $! donde $! es sustituido por el shell a la última tarea enviada en segundo plano o use el comando fg para traer la última tarea colocada en segundo plano al primer plano, para lo cual luego puede usar Ctrl-c.

información relacionada