Problem z autorestartem serwera

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.