Сборки серверов

СливПлатные

Сейчас онлайн

  • bobobo
  • KameLiya
  • drrsan
  • Niranqwq1
  • Iruka
  • Just_Goose
  • Kraykni
  • pyps
  • vanaedynak
  • 888ru888
  • olyat
  • DandyMix123
  • Norsek
  • lyprot
  • koldqp
  • noidi
  • Omotor
  • Samus_here
  • udevna11
  • BelzeBool
  • Evelynnyn
  • EmpireOverLord
  • Rossek2
  • 50грывян
  • nosxadium
  • TEHNO
  • Kimonomc
  • PickedBroken
  • lemon3
  • World man
  • Cobi
  • F1orescent
  • kirilltwice
  • Harmony
  • PIPISKIN13
  • necrolxrd
  • sveralol
  • NoobBrine
  • _Dead_
  • ikeepcalm
  • Nev1s
  • ArtemShel
  • eblan183475
  • sdfsdfdsfds
  • FELIXGRACE
  • ttert
  • shiba
  • benja
  • 4323432432432
  • 123111
  • krqtexenon
  • exez
  • MrKreenze
  • Bika000000
  • Дудник Натан
  • matin_omp
  • сглыпа)
  • _PWGdor_
  • serega222
  • RegulusCorneas
  • hopefriends
  • random_sorry7
  • TriaX
  • dfqd112
  • Milly_official
  • Ar4xmchik_
  • Tayger_Game
  • dragxwx
  • Софочка
  • MystalDev
  • Rival

Помощь Автозапуск сервера после перезагрузки VDS

  • Автор темыscarletJess
  • Дата начала
S
Привет! Подскажите пожалуйста.
Хочу сделать так что бы в случае если VDS перезагрузится, Minecraft сервер автоматически запускался.
OS: Ubuntu 22.04
 
Решение
bobobo

Автоподнятие сервера после перезагрузки:​

Скачиваешь вот этот скрипт запуска sh от Dymeth
Настраиваешь под себя...
Можешь его скачать командой wget https://gitlab.com/Dymeth/MCServerStarter/-/raw/master/start.sh
Далее работа с кроном.
вводишь crontab -e, если первый раз используешь, тебе предложат выбрать редактор.
Добавляешь туда:
Bash:
@reboot cd /путь/к/директории_сервера/ && ./start.sh
То есть ты должен понимать, что файл запуска start.sh должен находиться у тебя рядом с ядром.
/путь/к/директории_сервера/ замени на свой полный путь к папке с ядром сервера
Сохраняешь: Ctrl + O, и Enter. Ну и закрываешь редактор...
bobobo

Автоподнятие сервера после перезагрузки:​

Скачиваешь вот этот скрипт запуска sh от Dymeth
Настраиваешь под себя...
Можешь его скачать командой wget https://gitlab.com/Dymeth/MCServerStarter/-/raw/master/start.sh
Далее работа с кроном.
вводишь crontab -e, если первый раз используешь, тебе предложат выбрать редактор.
Добавляешь туда:
Bash:
@reboot cd /путь/к/директории_сервера/ && ./start.sh
То есть ты должен понимать, что файл запуска start.sh должен находиться у тебя рядом с ядром.
/путь/к/директории_сервера/ замени на свой полный путь к папке с ядром сервера
Сохраняешь: Ctrl + O, и Enter. Ну и закрываешь редактор: Ctrl + X

Копия автозапуска, для случая, если Dymeth удалит:​

Bash:
#!/bin/sh

# All system paths and filenames are case sensitive (uppercase and lowercase letters)
# Все системные пути и названия файлов чувствительны к регистру (заглавные и строчные буквы)

# *** Server app options / Параметры приложения-сервера ***

# Execution type: screen or tmux
# Тип выполнения: screen или tmux
execution_type="screen"

# To create a screen/tmux session and identify the process in top, htop, etc.
# Для создания сессии screen/tmux и идентификации процесса в top, htop и т.д.
server_name="lobby"

# Display the server console after starting the script
# Отображать ли консоль сервера сразу после запуска скрипта
auto_console_join=true

# Server app file name. If not specified, it will automatically find the jar file. Example: paper.jar
# Название файла ядра. Если не указано - найдёт jar-файл автоматически. Пример: paper.jar
jar_file=""

# Minimum amount of memory. Example: 2048M or 2G
# Минимальное количество памяти. Пример: 2048M или 2G
min_memory="1G"

# Maximum amount of memory
# Максимальное количество памяти
max_memory="5G"

# Server port. If not specified, the value from server.properties is used
# Порт сервера. Если не указан - используется значение из server.properties
server_port=""

# Whether to use a forced update of all chunks to the format of the current Minecraft-server version at startup
# Использовать ли при запуске принудительное обновление всех чанков до формата текущей версии Майнкрафт-сервера
force_chunks_upgrade=false

# *** Java options / Параметры Java ***

# Java directory (for JDK add "/bin" at the end). If not specified, the system path is used. Example: $HOME/jre-16.0.1 или $PWD/jdk-17.0.2/bin
# Директория Java (для JDK добавьте в конце "/bin"). Если не указана - используется системный путь. Пример: $HOME/jre-16.0.1 или $PWD/jdk-17.0.2/bin
java_dir=""

# Whether to enable profiling (requires more system resources). Only works with JDK
# Включить ли профилирование (требуется больше системных ресурсов). Работает только с JDK
profiling=false

# Whether to prevent errors like <<module java.base does not "opens java.lang" to unnamed module>>
# Предотвращать ли ошибки вида <<module java.base does not "opens java.lang" to unnamed module>>
fix_java_12_issues=true

# The host and port of the debug agent. If not specified, debugging is disabled. Example: 0.0.0.0:22222
# Хост и порт агента отладки. Если не указано - отладка отключена. Пример: 0.0.0.0:22222
debug_agent_address=""

# Log4j options file with .xml extension. If not specified, default settings are used. Example: log4j2.xml
# Файл параметров log4j с расширением .xml. Если не указано - используются настройки по-умолчанию. Пример: log4j2.xml
log4j_config=""



# *** Anything below is not recommended to be modified ***
# *** Всё, что ниже, менять не рекомендуется ***

# Source / Источник: https://mcflags.emc.gs
aikar_jvm_flags="-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -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"
jvm_flags="-server -Dfile.encoding=UTF-8"
app_flags="nogui"
display_start_command=false
process_hint="${server_name}"
script_name=$(basename "$0")

if [ "$jar_file" = "" ]; then
    for file in *.jar; do
        [ -f "$file" ] || break
        if [ "$jar_file" != "" ]; then
            echo "Multiple jar-files found: $jar_file and $file. Please specify jar_file option in $script_name"
            exit
        fi
        jar_file=$file
    done
    if [ "$jar_file" = "" ]; then
        echo "Jar-file not found. Please specify jar_file option in $script_name"
        exit
    fi
    echo "Using jar-file $jar_file"
fi

if [ "$1" != "deep" ]; then
    if [ "$execution_type" = "screen" ]; then
        screen -A -m -d -S ${server_name} bash "${script_name}" deep
        [ "$auto_console_join" = true ] && sleep 0.2 && screen -x ${server_name}
    elif [ "$execution_type" = "tmux" ]; then
        tmux new -d -s ${server_name}
        sleep 0.2
        tmux send-keys -t ${server_name} "bash \"${script_name}\" deep" Enter
        [ "$auto_console_join" = true ] && sleep 0.2 && tmux attach -t ${server_name}
    else
        echo "Wrong execution_type: $execution_type"
    fi
    exit
fi

#!/bin/bash

[ "$java_dir" != "" ] && java_dir="${java_dir}/"
java_binary="${java_dir}java"

jvm_flags+=" ${aikar_jvm_flags}"
if [ "$profiling" = true ]; then
    process_hint+="-profiling"
    jvm_flags="${jvm_flags// -XX:+PerfDisableSharedMem/}"
    jvm_flags+=" -Xshare:off"
fi
process_hint="$USER.${process_hint}"

add_opens_packages=()
add_modules_list=(
    "jdk.incubator.vector"
)

if [ "$fix_java_12_issues" = true ]; then
    add_opens_packages+=(
        "java.base/java.lang"
        "java.base/java.lang.reflect"
        "java.base/java.lang.invoke"
        "java.base/java.security"
    )
fi

for package in "${add_opens_packages[@]}"; do
    jvm_flags+=" --add-opens ${package}=ALL-UNNAMED"
done

for module_index in "${!add_modules_list[@]}"; do
    if [ "$module_index" = 0 ]; then
        jvm_flags+=" --add-modules="
    else
        jvm_flags+=","
    fi
    jvm_flags+="${add_modules_list[$module_index]}"
done

[ "$debug_agent_address" != "" ] && jvm_flags+=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${debug_agent_address}"
[ "$log4j_config" != "" ] && jvm_flags+=" -Dlog4j.configurationFile=${log4j_config}"

[ "$server_port" != "" ] && app_flags+=" -port ${server_port}"
[ "$force_chunks_upgrade" = true ] && app_flags+=" --forceUpgrade"

start_command="${java_binary} -D_server=${process_hint} -Xms${min_memory} -Xmx${max_memory} ${jvm_flags} -jar ${jar_file} ${app_flags}"

if [ "$display_start_command" = true ]; then
    echo "Start command: $start_command"
fi

while true
do
    eval "${start_command}"
    echo "Server $server_name stopped. Rebooting in:"
    for seconds_left in {3..1}
    do
        echo "$seconds_left..."
        sleep 1
    done
done

# Author / Автор: dymeth.ru
 
Решение
Morozzovvv
Здарова, Я установил себе этот скрипт, но у меня перезагрузка уходит в вечный цикл, сколько бы Я не пробовал.
Даже если Я напишу команду рестарт то сервак останавливается, и не могу поднять сервер пока сам дедик не перезапущу :(
 
Morozzovvv
@Morozzovvv,
после ребута сервак офается, и когда пишу даже sh start.sh в результате старта сервера пишет FAILED BIND TO PORT хотя порт то открытый, и сервак отключён, фиксится это тем что Я перезапускаю вдс сервер и только после этого могу стартануть сервер
 
ВерхНиз