![如何停止使用此命令启动的 Java jar 文件应用程序](https://linux22.com/image/602882/%E5%A6%82%E4%BD%95%E5%81%9C%E6%AD%A2%E4%BD%BF%E7%94%A8%E6%AD%A4%E5%91%BD%E4%BB%A4%E5%90%AF%E5%8A%A8%E7%9A%84%20Java%20jar%20%E6%96%87%E4%BB%B6%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
为了运行游戏服务器(minecraft),我通过在 CentOS 中运行以下命令来启动它:
java -Xms512M -Xmx1G -jar minecraft_server.jar
但我不知道如何停止运行此文件。我假设它有自己的内部命令,但考虑到它可能在后台启动并运行很长时间,我该如何停止此 Java 命令?
谢谢。
答案1
您可以结合使用 ps 和 kill 来停止特定进程。
您首先要ps -aux | grep minecraft
获取进程号 - 即第二个字段,第一个数字。
然后您可以kill $PID
向该进程发送 SIGTERM 并让其正常关闭。
答案2
您可以使用以下 2 个文件来启动/停止服务文件
启动脚本
#!/usr/bin/env bash
PID=0
if [ -f './pid' ]; then
PID=$(cat ./pid)
fi
if ps -p $PID > /dev/null
then
echo "Service with $PID is already running"
else
nohup java -jar ./service.jar > service.out 2> errors.txt < /dev/null & PID=$!; echo $PID > ./pid
fi
停止脚本
#!/usr/bin/env bash
if [ -f './pid' ]; then
PID=$(cat ./pid) && kill -15 $PID
fi