Bash 进程终止后终端未关闭

Bash 进程终止后终端未关闭,bash,spring-boot,Bash,Spring Boot,我使用以下命令运行Spring Boot应用程序 java -jar myapp-1.0.0.jar & echo $! > "myapp.pid" 并使用以下命令终止进程 kill `cat "myapp.pid"` or kill -9 `cat "myapp.pid"` 当我检查进程被终止,但终端不返回时,它就被挂起了。当我按下一个键时,它会恢复正常。这里有什么问题?当您在后台运行它并执行另一个命令echo时,它实际上不会返回到$prompt。只需按以下方式尝试即可:-

我使用以下命令运行Spring Boot应用程序

java -jar myapp-1.0.0.jar & echo $! > "myapp.pid"
并使用以下命令终止进程

kill `cat "myapp.pid"` or kill -9 `cat "myapp.pid"`

当我检查进程被终止,但终端不返回时,它就被挂起了。当我按下一个键时,它会恢复正常。这里有什么问题?

当您在后台运行它并执行另一个命令echo时,它实际上不会返回到$prompt。只需按以下方式尝试即可:-

  java -jar myapp-1.0.0.jar
并从不同的终端终止进程

 kill `cat "myapp.pid"` or kill -9 `cat "myapp.pid"` 

那么,在第一步中,您将myapp.pid保存在哪里呢?您仍然可以使用java-jar myapp-1.0.0.jar&echo$!>因此,在终止后,即使提示没有反映或返回$prompt,您也不必担心它。只需按任意键或回车键,它就会返回。这不会产生任何问题。