У меня работает.Вы уверены, что убиваете правильный пид?В Unix вы можете использовать $!
, чтобы получить pid последнего запущенного вами процесса.
$ java -jar file.jar &
[1] 25573
$ kill -INT $!
Received SIGINT signal. Will teardown.
Обновление:
Если вы запускаете это в фоновом режимес помощью сценария оболочки ОС создаст новую группу процессов, которая будет защищена от генерируемых клавиатурой сигналов, таких как SIGINT.Эти сигналы могут получать только процессы, чей идентификатор группы процессов совпадает с идентификатором группы процессов текущего терминала.
Поэтому попробуйте запустить его в пределах группы процессов текущего терминала следующим образом:
. ./script.sh
Тогда вы будетевозможность отправки SIGINT.
Подробнее о контроле заданий здесь .