Вопрос start.sh помогите

zapredrkn

Пользователь
Сообщения
56
Приветствую! Я хотел сделать автоматический рестарт сервера при вводе /stop или /restart и чтобы он сам запускался в этом скрипте start.sh:

Код:
#!/usr/bin/env sh

while [ true ]; do
    java -Xms1024M -Xmx8192M -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -Dusing.aikars.flags=JVM Tuning: Optimized G1GC for Minecraft - Aikar's Thoughts -Daikars.new.flags=true -jar server.jar
    echo Server restarting...
    echo Press CTRL + C to stop.
done


Но после /stop вылазит это: start.sh: 7: Syntax error: "done" unexpected (expecting "do")
 
Последнее редактирование модератором:
Решение
Только стоп и НИКОГДА не рестарт.
Bash:
#!/usr/bin/env bash

while true; do
java -Xms8192M -Xmx8192M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar server.jar --nogui

echo Restarting in 5 seconds...
echo Press CTRL +...
Код:
#!/bin/bash


while [ true ]; do
    java -Xms1024M -Xmx8192M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar server.jar


    echo Server restarting...
    echo Press CTRL + C to stop.
done
Объединено

вот что вышло
 
Только стоп и НИКОГДА не рестарт.
Bash:
#!/usr/bin/env bash

while true; do
java -Xms8192M -Xmx8192M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar server.jar --nogui

echo Restarting in 5 seconds...
echo Press CTRL + C to cancel.
sleep 5
done
Попробуйте это. Убедитесь, что файла выданы права и кодировка стоит linux. После чего стартуйте и тестируйте.
А и server.jar должно быть название ядра вашего сервера. Ну мало ли вы не знали. И пришлите полную ошибку при старте, так хоть лучше диагностировать выйдет.
Так же не мало важно с какой версии майнкрафта и какое ядро запускаете. К примеру модуль --add-modules=jdk.incubator.vector не корректно работает на пипере, но отлично на пуферфише и пурпуре.
 
как убедиться в выдаче прав и кодировке linux?
Объединено

Ядро: Purpur 1.21.4
Объединено

s...
start.sh: 3: 20: not found
: not found:
Restarting in 5 seconds...
Press CTRL + C to cancel.
sleep: invalid time interval ‘5\r’
Try 'sleep --help' for more information.
start.sh: 8: Syntax error: "done" unexpected
 
Последнее редактирование:
как убедиться в выдаче прав и кодировке linux?
Объединено

Ядро: Purpur 1.21.4
Сперва начнем с кодировки. Ее очень легко настроить открыв файл start.sh с помощью NP++
Далее вверху найти правка -> Формат конца строк -> Преобразовать в Unix (LF)
Вам необходимо зарегистрироваться для просмотра изображений-вложений

После чего закинуть исправленный файл на сервер.

По поводу прав, тут все просто, заходите под root пользователем или под sudo и приписывайте по одной данные команды:
Bash:
chmod 700 /home/user
chmod -R 700 /home/user
chown -R user:user /home/user/
Предварительно заменив user на имя вашего пользователя от которого вы стартуете сервер.
Попробуйте это и отпишитесь вышло вообще или нет.
 
Назад
Сверху Снизу