Похоже, это очень старая проблема, которая не была решена. Кажется, что занесение этого устройства в черный список - единственное, что вы можете сделать в настоящее время.
Эта строка исправила:
Удаление демона И добавление > к эхо $!
/usr/bin/java -Xmx4096M -Xms4096M -jar $PATH_TO_JAR nogui > /dev/null 2>&1 & echo $! >>$PID_PATH_NAME
Я тоже:
cd /home/minecraft/server/
pwd
в начале скрипта
exec /home/minecraft/server/startup-server.sh > /dev/null 2>&1 & echo $!
дает вам PID startup-server.sh
, который закрывается почти сразу. Но вам нужен PID
/usr/bin/java -Xmx4096M -Xms4096M -jar minecraft_server.jar nogui
Для вашего подхода к работе нужно
exec /usr/bin/java -Xmx4096M -Xms4096M -jar minecraft_server.jar nogui
Кроме того, if [ -f $PID_PATH_NAME ]
недостаточно. Вы всегда должны проверять, что процесс все еще существует и что он правильный.
Вместо этого может иметь смысл использовать что-то вроде startproc
.
Этот PID
возвратил из /home/minecraft/server/startup-server.sh
скрипт (новый процесс bash ). Вам нужно получить PID
из этой команды /usr/bin/java -Xmx4096M -Xms4096M -jar minecraft_server.jar nogui
.