Problem z automatycznym restartem serwera Minecraft w nocy

Zombie
vps, minecraft, zarządzanie
logixdev
logixdev

Hej. Chcę zrobić automatyczny restart serwera Minecraft o 4:00 w nocy. Użyłem zmodyfikowanego lekko skryptu podanego w tym temacie przez @riko.dev. Wszystko spoko, jak odpalam skrypt samemu z poziomu wiersza poleceń, to śmiga, ale jak dodaje go do wykonania przez crona, to wykonuje się odliczanie do restartu oraz samo zastopowanie serwera, natomiast samo ponowne odpalenie już nie. Tak jak mówię, jak sam odpalę ten skrypt, to śmiga. W czym może tkwić problem? Kod skryptu:

#!/bin/bash
 
screen -p 0 -S lobby -X stuff "say Automatyczny restart serwera za... 3$(echo '\r')"
sleep 1
screen -p 0 -S lobby -X stuff "say Automatyczny restart serwera za... 2$(echo '\r')"
sleep 1
screen -p 0 -S lobby -X stuff "say Automatyczny restart serwera za... 1$(echo '\r')"
sleep 1
screen -p 0 -S lobby -X stuff "say Restart serwera. Wracamy za chwile.$(echo '\r')"
sleep 1
screen -p 0 -S lobby -X stuff "save-all$(echo '\r')"
sleep 5
screen -p 0 -S lobby -X stuff "stop$(echo '\r')"
sleep 60
cd /home/euforiamc/lobby
sh start.sh

Dodane polecenie do wykonania widoczne pod crontab -l: 0 4 * * * /home/euforiamc/miscellaneous/restart_lobby.sh >/dev/null 2>&1

psycho
psycho

Nie wiem czy w tym problem ale w poleceniu

0 4 * * * /home/euforiamc/miscellaneous/restart_lobby.sh >/dev/null 2>&1

brakuje kropki przed ścieżką do pliku. Może to wina tego?

0 4 * * * ./home/euforiamc/miscellaneous/restart_lobby.sh >/dev/null 2>&1
logixdev
logixdev

Teraz niestety w ogóle nie działa, więc nie to jest problemem. Dodam, że uruchamiam crona w użytkowniku z prawami do sudo (nie root).

logixdev
logixdev

Naprawiłem. Dla potomnych, może komuś się przyda - przy używaniu tego w skrypcie startowym serwera trzeba zmienić screen -S na screen -dmS (przynajmniej w moim przypadku to zadziałało).

DBanaszewski
DBanaszewski α-tester v3

logixdev:

przynajmniej w moim przypadku to zadziałało

Samo screen -S potrzebuje aktywnego terminala/tty, ale screen -dmS uruchamia screena już "ukrytego" - i to już nie wymaga terminala, co pozwoliło Ci na uruchomienie 😄

logixdev
logixdev

Właśnie podobnym tokiem rozumowania dotarłem do rozwiązania problemu, ja używam tej samej linii startowej do serwerów od wielu lat i nie pomyślałem, że jak będę chciał zrobić automatyczny restart, to trzeba troszkę zmodyfikować ją. Anyway, dzięki za wytłumaczenie. :slight_smile:

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.