Чтобы запустить игровой сервер (майнкрафт), я запускаю его, выполнив эту команду в CentOS:
java -Xms512M -Xmx1G -jar minecraft_server.jar
Но я понятия не имею, как остановить запуск этого файла. Я предполагаю, что у него есть собственная внутренняя команда, но, учитывая, что она может запускаться в фоновом режиме и работать в течение очень долгого времени, как я могу остановить эту команду Java?
Спасибо.
Вы можете использовать комбинацию ps и kill, чтобы остановить конкретный процесс.
Вы бы сначала сделали ps -aux | grep minecraft
чтобы получить номер процесса - это второе поле, первое число.
Тогда вы можете оформить kill $PID
для отправки SIGTERM процессу и его корректного завершения.
Вы можете использовать следующие 2 файла для запуска / остановки service.jar
start.sh
#!/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
stop.sh
#!/usr/bin/env bash
if [ -f './pid' ]; then
PID=$(cat ./pid) && kill -15 $PID
fi