Java 停止linux中当前正在运行的Spring引导
我正在linux中运行一个springboot应用程序。要运行这个springboot,我们使用下面的命令Java 停止linux中当前正在运行的Spring引导,java,spring-boot,Java,Spring Boot,我正在linux中运行一个springboot应用程序。要运行这个springboot,我们使用下面的命令 java -jar sssup-SNAPSHOT.jar & kill 5980 这个spring引导应用程序提供了一个端点,该端点随后被其他服务使用 现在,当新版本的.jar可用时,我必须停止当前正在运行的.jar,然后再次运行上述命令 这里我的问题是如何停止当前正在运行的sssup-SNAPSHOT.jar?一种方法是使用fg命令将后台进程带到前台,然后按Ctrl+C。只有
java -jar sssup-SNAPSHOT.jar &
kill 5980
这个spring引导应用程序提供了一个端点,该端点随后被其他服务使用
现在,当新版本的.jar可用时,我必须停止当前正在运行的.jar,然后再次运行上述命令
这里我的问题是如何停止当前正在运行的sssup-SNAPSHOT.jar?一种方法是使用fg命令将后台进程带到前台,然后按Ctrl+C。只有在运行jar文件的同一终端中,这才有效
另一种更可靠的方法是使用ps-a | grep java来查找应用程序的进程id。然后您可以使用该进程id执行kill操作。如果您想执行maualy操作,请执行以下步骤
1. open terminal
2. type JPS and enter
3. copy your application process id
4. sudo kill -9 application_id
如果JPS不能飞行,那么
1. open terminal
2. type ps -a | grep sssup-SNAPSHOT.jar
3. copy you process id
4. do sudo kill -9 processid
如果您想通过Shell脚本执行此操作,请使用下面的
app_id=$(ps -ef | grep 'sssup-SNAPSHOT.jar' | grep -v 'grep' | awk '{ printf $2 }')
sudo kill $app_id
echo Killed Application and Starting New
nohup java -jar "sssup-SNAPSHOT.jar" &
您可以找到spring进程的PID并向其发送SIGTERM信号 在这里找到PID,PID是12345 $ps-ef | grep sssup | awk'{print$2}' 12345 发送终止信号这将发送信号SIGTERM 杀死12345 如果应用程序优雅地处理SIGTERM,则可以通过发送SIGKILL强制杀死它 kill-s SIGKILL 12345 或 杀死-912345 这里记录了信号 您可以通过运行来列出信号及其编号 杀戮-l 编辑:在线 ps-ef | grep sssup SNAPSHO[T]| awk{print$2}| xargs kill
由于您是在后台运行该进程,因此需要首先找到它的进程以终止它 要查找进程ID,请在以下命令中激发:
ps -ef | grep "sssup-SNAPSHOT.jar"
输出将如下所示:
502 5980 5964 0 10:40AM ttys000
第二列是进程ID,这里是5980。在把火复制到命令下面之后
java -jar sssup-SNAPSHOT.jar &
kill 5980
只需通过启动ps-ef命令再次检查它是否被杀死。如果它还没有被杀死,你可以使用-9标志强制杀死它。与kill-9类似,Spring引导打印在日志信息之后的日志号中的进程id,然后使用kill-9PID命令
注意:9表示进程将被内核终止;此信号不能忽略。您可以使用kill命令终止进程。要查找进程id,请触发ps-ef | grep sssup快照。jar@Saurabh是的……只需向这个进程发送一个SIGKILL,您就必须找到java工作的端口号,您可以在application.properties或application.yaml中找到。如果未声明,则为其8080端口。接下来,您必须找到它运行的进程lsof-t-i:8080。终止该过程。@Saurabh请将您的答案作为实际答案发布。@MalavShah请将您的答案作为实际答案发布。您为什么要运行nohup.jar?您可以删除nohup。这显然是一种更好的方法。不知道为什么这个答案不被接受。