Я запускаю приложение Spring Boot с помощью следующей команды:
java -jar myapp-1.0.0.jar & echo $! > "myapp.pid"
и убиваем процесс с помощью следующей команды
kill `cat "myapp.pid"` or kill -9 `cat "myapp.pid"`
и когда я проверил, что процесс убит, но терминал не возвращается, он зависает. Когда я нажимаю клавишу, она возвращается в норму. В чем проблема?





Поскольку вы запускаете его в фоновом режиме и выполняете еще одну команду echo, на самом деле он не возвращается к приглашению $. Просто попробуйте, как показано ниже, это будет работать: -
java -jar myapp-1.0.0.jar
И убить процесс с другого терминала
kill `cat "myapp.pid"` or kill -9 `cat "myapp.pid"`
Вы все еще можете использовать java -jar myapp-1.0.0.jar & echo $! > "myapp.pid", поэтому после убийства, даже если подсказка не отображается или не возвращается к подсказке $, вам не нужно об этом беспокоиться. Просто нажмите любую клавишу или клавишу ввода, и она вернется. Это не создаст никаких проблем.
Итак, где вы сохраняете myapp.pid на первом этапе?