为了运行游戏服务器(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