1

У меня есть сервер minecraft, работающий в VPS, и иногда мой сервер неожиданно убивают.

Я не верю, что это ошибка Java, потому что ошибка не генерируется, и это происходит, когда сервер работает нормально, также я вижу сообщение из моего скрипта, которое вызывает команду java о том, что процесс был убит, а также сообщает мне идентификатор процесса и строка в скрипте sh, которая была убита:

Мой сценарий:

#!/bin/sh
cd /home/minecraft/server
FILE=mcpc-plus-legacy-1.4.7-R1.1-SNAPSHOT-f534-L31.jar
#LOG="log`date +'%Y-%m-%d.%H:%M:%S'`.log"
while :
do
LOG="log`date +'%Y-%m-%d.%H:%M:%S'`.log"
echo "Iniciando..." >> "$LOG"
rm log-latest.log
ln -s "$LOG" log-latest.log
java -Xmx7680M -Xms4096M -XX:MaxPermSize=192M  -jar "$FILE" 2>> "$LOG"
#-Dcom.sun.management.jmxremote \
#-Dcom.sun.management.jmxremote.port=9010 \
#-Dcom.sun.management.jmxremote.local.only=false \
#-Dcom.sun.management.jmxremote.authenticate=false \
#-Dcom.sun.management.jmxremote.ssl=false \
# -jar "$FILE" >> "$LOG.std.txt"  2>> "$LOG"

echo "Aperte CTRL + C para cancelar"
sleep 5

done

Сообщение, которое отображается, когда процесс убит:

/home/minecraft/server/acao_iniciar.sh: line 22: 23546 Killed java -Xmx7680M -Xms4096M -XX:MaxPermSize=192M -jar "$FILE" 2>> "$LOG"

Там нет настроенного cronjob, и last команда не показывает странного соединения через SSH.

1 ответ1

1

Одной из вероятных причин является то, что вашему серверу не хватает памяти, а процесс убивает OOM killer. Это механизм в Linux, который убивает процессы с низким приоритетом, когда системе не хватает памяти.

Если это так, то вы сможете исправить это, i) уменьшив объем памяти, который вы позволяете вашему Java-процессу, ii) увеличив приоритет процесса (nice -15) или iii) увеличив доступную память.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .