我在linux.To中运行了一个springboot应用程序,运行下面的命令。
java -jar sssup-SNAPSHOT.jar &这个spring引导应用程序使端点可用,然后由其他服务使用。
现在,当新版本的.jar可用时,我必须停止当前正在运行的.jar,然后再次运行上面提到的命令。
这里我的问题是如何停止当前正在运行的sssup-SNAPSHOT.jar?
发布于 2020-06-04 13:09:41
您可以找到spring进程的PID并向其发送SIGTERM信号。
找到PID (这里的PID是12345)
$ ps -ef | grep sssup | awk '{print $2}'
12345发送终止信号(这将发送信号SIGTERM)
kill 12345如果应用程序优雅地处理SIGTERM,您可以通过发送SIGKILL来强制终止它
kill -s SIGKILL 12345
### or
kill -9 12345信号记录在这里https://www.man7.org/linux/man-pages/man7/signal.7.html
您可以通过运行以下命令列出信号及其编号
kill -l编辑: Onliner
ps -ef | grep "sssup-SNAPSHO[T]" | awk '{print $2}' | xargs kill发布于 2020-06-04 13:13:33
由于您是在后台运行该进程,因此您需要首先找到它的进程来杀死它。
要查找进程ID,请执行以下命令:
ps -ef | grep "sssup-SNAPSHOT.jar"输出将如下所示:
502 5980 5964 0 10:40AM ttys000 您的第二列是您的进程ID,所以这里是5980。在复制下面的命令后。
kill 5980只需通过执行ps -ef命令再次检查它是否被终止。如果它还没有被杀死,那么你可以使用-9标志来force kill它。像kill -9 <PID>一样
发布于 2020-06-04 13:07:33
如果你想做一些简单的事情,那么可以按照下面的步骤来做。
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" &https://stackoverflow.com/questions/62187156
复制相似问题