Итак, у меня есть задача 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.