Vaxter | 2021-04-22 15:00:08 UTC | #1
Witam, otóż chciałbym utworzyć autrestart serwera MC o 1:00. Problem jest taki że gdy dochodzi do wyznaczonej godziny (testowałem na godzinę 11:30) nic się nie dzieje a w katalogu głównym serwera czasami dostaje log hserrpid.log
Skrypt startujący
1 2 3#!/bin/bash /usr/bin/screen -dmS server java -Xms6G -Xmx6G -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 -jar silnik.jar
Skrypt restarujący
1 2 3 4 5 6#!/bin/bash /usr/bin/screen -dmS server -p 0 -X stuff "stop^M" sleep 30 cd /home/serwer bash start.sh
Komenda w cronie
30 11 * * * bash /home/serwer/restart.sh
Timo | 2021-04-22 11:57:16 UTC | #2
Cześć, różnie bywa z tym zatrzymywaniem serwerów Minecraft.
Możesz zrobić to w ten sposób, że proces serwera umieścisz w pętli. Jeśli ulegnie on zakończeniu (stop, crash) to pętla uruchomi go ponownie.
Użyj pętli podobnej jak podana tutaj:
https://forum.lvlup.pro/t/co-zrobic-aby-plik-start-sh-ponownie-wlaczal-moj-serwer-mc/14347/2?u=timo
Uruchamiasz sobie w trwałym screenie taką pętlę i dodajesz zadanie cron, które o wykonuje samą komendę stop
w konsoli.
Vaxter | 2021-04-22 14:58:24 UTC | #3
A komenda do crona to jaka? Bo już kombinuje od rana z tym i nie chce to działać
KrEdEnS | 2021-04-22 15:03:16 UTC | #4
Spróbuj przejść do danego katalogu i uruchomić skrypt
30 11 * * * cd /home/serwer && ./restart.sh
powinno zadziałać :) ewentualnie podziel w cronie zadania i jeden skrypt do stopu, drugi do startu…
Vaxter | 2021-04-22 15:32:57 UTC | #5
Właśnie nic się nie dzieje cały czas
KrEdEnS | 2021-04-22 15:45:01 UTC | #6
Skrypt ma odpowiednie uprawnienia?
Vaxter | 2021-04-22 15:56:46 UTC | #7
Nadałem
chmod +x restart.sh
A kiedy próbuje wykonać skrypt ręcznie dostaje info
There is a screen on:
1192.server (04/22/21 17:43:36) (Detached)
No screen session found.
There is a screen on:
1192.server (04/22/21 17:43:36) (Detached)
No screen session found.
Vaxter | 2021-04-22 20:24:29 UTC | #8
Okej udało się to naprawić. W skrypcie restartującym zmieniłem -dmS na -S jak dodałem zaczęło wszystko działać. Dziękuje każdemu za poradę
system | 2021-05-24 18:16:10 UTC | #9
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.