перенаправляем pid для завершения по ctrl-c

перенаправляем pid для завершения по ctrl-c

Итак, у меня есть задача Grunt, выполняющая эту команду:

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

Проблема в том, что по какой-то причине процесс Java продолжает работать, когда я нажимаю ctrl-c для перехода в оболочку.

Моя идея решения этой проблемы заключается в передаче pid в переменную сеанса и добавлении еще одной команды для завершения того же pid.

Я понятия не имею, как я могу этого добиться, поэтому мне нужна помощь. Кроме того, если вы можете придумать более простой способ, это будет очень ценно.

Большое спасибо

ОБНОВЛЯТЬ

проблема решилась сама собой, когда я поменял порядок запуска команд, вот так

grunt watch && java -jar

поэтому, когда я нажимаю ctrl-c, процесс Java завершается.

В любом случае, было бы неплохо, если бы кто-нибудь научил меня, как выполнить мой первый подход.

решение1

Когда вы ставите знак & в командной строке, он переводит предыдущую команду в фоновый режим, поэтому Ctrl-C не останавливает его. Чтобы убить его, вы можете либо выполнить kill $!, где $! заменяется оболочкой на последнюю фоновую задачу, либо использовать команду fg, чтобы перевести последнюю задачу, помещенную в фоновый режим, на передний план, для чего затем вы можете использовать Ctrl-c.

Связанный контент