shell — запуск / остановка сервера Minecraft с переполнением стека

Последние 10 часов я пытался найти способ запустить / остановить файл craftbukkit.jar, который находится в том же каталоге, что и мой скрипт php. Я перепробовал почти все решения, которые я смог найти в stackoverflow, и ни одно из них не сработало.

Я пробовал оба shell_exec("java -Xms1024M -Xmx1024M -jar craftbukkit.jar -o true"); а также exec("java -Xms1024M -Xmx1024M -jar craftbukkit.jar -o true"); Я также пытался положить java -Xms1024M -Xmx1024M -jar craftbukkit.jar -o true во внешнем файле start.sh и затем запустив его с exec("start.sh")

Что я делаю неправильно? Предполагается, что все файлы конфигурации Bukkit будут создаваться при запуске процесса (так же, как при запуске на компьютере).

0

Решение

Я думаю, что вам нужна консоль для запуска сервера в …
я бы порекомендовал сеанс экрана для сервера:

Для запуска сервера команда может выглядеть так:

exec("screen -S bukkit sh /home/user/bukkit/start.sh")

опция -S — это название сессии.
поэтому, когда вы хотите подключиться к консоли через ssh, например, вы просто делаете

screen -r bukkit

может быть, вы должны использовать абсолютные пути для команды … не уверен, если это лучше или нет

есть способ послать несколько команд на этот сеанс, чтобы остановить сервер, но я не помню сейчас!

если вы не используете экран для чего-то еще, вы можете попробовать

exec("killall screen")

убить все скриншоты …
но будьте осторожны с этим, потому что сервер может не сохранить недавние изменения (без выключения bukkit-сервера)

1

Другие решения

Других решений пока нет …