Witajcie.

Napisałem sobie finalnie skrypt, który restartuje serwer do minecrafta. Mianowicie, wiadomości na czacie, zapisywanie, wyrzucanie graczy, stop serwera, zabicie procesów screena, uruchomienie go ponownie i finalnie uruchomienie serwera.

Skrypt:

#!/bin/bash
# Minecraft AutoRestart


cd /home/xpirationcraft/
echo "=================================================="
echo "Rozpoczynam sekwencje: Automatyczny Restart Serwera"
echo "=================================================="


screen -p 0 -S xpiration -X stuff "say ============================================="`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Serwer zostanie za chwile zrestartowany!"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Restart serwera uruchamiany jest automatycznie!"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say O godzinach: 5:00 | 10:00 | 15:00 | 20:00"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Kazdy restart trwa od 1 do 2 minut."`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say Nie wyjscie moze skutkowac utrata ekwipunku!"`echo -ne '\015'`
sleep 0.5
screen -p 0 -S xpiration -X stuff "say ============================================="`echo -ne '\015'`


sleep 5
echo "Restart serwera za 60 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 60 sekund"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 50 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 50 sekund"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 40 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 40 sekund"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 30 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 30 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 20 sekund"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 20 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 10
echo "Restart serwera za 10 sekund (Zapisuje stan serwera)"
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 10 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`
screen -p 0 -S xpiration -X stuff "save-all"`echo -ne '\015'`


sleep 5
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 5 sekund (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 4 sekundy (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 3 sekundy (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 2 sekundy (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "say RESTART SERWERA ZA: 1 sekunde (Prosimy o wyjscie!)"`echo -ne '\015'`


sleep 1
echo "Wyrzucam wszystkich graczy"
screen -p 0 -S xpiration -X stuff "kickall"`echo -ne '\015'`


sleep 1
echo "Wylaczam serwer"


sleep 1
screen -p 0 -S xpiration -X stuff "say ---==[RESTART]==---"`echo -ne '\015'`


sleep 1
screen -p 0 -S xpiration -X stuff "stop"`echo -ne '\015'`


sleep 1
echo "Czekam 30 sekund na wylaczenie serwera"
sleep 10
echo "Czekam 20 sekund na wylaczenie serwera"
sleep 10
echo "Czekam 10 sekund na wylaczenie serwera"


sleep 10
echo "Zabijam screena"
killall -v screen


sleep 2
echo "Uruchamiam ponownie screena oraz serwer..."
cd "/home/xpirationcraft";  screen -S xpiration -dmS java -Xms14336M -Xmx14336M -jar craftbukkit-1.4.2-R0.2.jar nogui


sleep 40
screen -p 0 -S xpiration -X stuff "say Restart serwera przebiegł pomyślnie!"`echo -ne '\015'`

Problem jest tylko tego typu, że nie mam pojęcia co jest nie tak że na crontabie już nie działa co też jest dziwne bo kiedy ustawiałem dla testów w crontabie z wyprzedzeniem na np. za 5 minut i czekałem żeby sprawdzić czy zadziała to wszystko działało bez zarzutu. W końcu stwierdziłem, że będzie działać i ustawiłem uruchomienie w crontab na za kilka godzin i klapa, mianowicie po killu screena i jego ponownym uruchomieniu nic więcej się nie dzieje, i serwer nie chce ponownie stanąć na nogi.

Co tutaj jest nie tak?