piping pid para matar em ctrl-c

0

Portanto, tenho uma tarefa do Grunt executando este comando:

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

O problema é que, por algum motivo, o processo java continua sendo executado quando eu ctrl-c para o shell.

Minha ideia de resolver isso seria através de piping o pid para uma variável de sessão e adicionar outro comando para matar o mesmo pid.

Eu não tenho ideia de como posso conseguir isso, então eu preciso de ajuda. Além disso, se você puder pensar de uma forma mais simples, será muito apreciado.

Muito obrigado

UPDATE

o problema resolveu-se quando mudei a ordem dos comandos que estão sendo executados, assim

grunt watch && java -jar

Então, quando eu ctrl-c, o processo java é morto.

De qualquer forma, seria bom se alguém pudesse me ensinar como executar minha primeira abordagem.

    
por André Alçada Padez 03.09.2014 / 16:43

1 resposta

1

Quando você coloca um & na linha de comando, coloca o comando precedendo-o no fundo, e é por isso que o Ctrl-C não o impede. Para matá-lo, você pode matar $! onde $! é substituído pelo shell para a última tarefa enviada em segundo plano ou use o comando fg para trazer a última tarefa colocada em segundo plano para o primeiro plano para o qual você pode usar Ctrl-c.

    
por 05.09.2014 / 16:27