HLDS - skrypcior
Od HLDS.pl
UWAGA ten artykuł jest wyłącznie pod Linuksa |
Spis treści |
Uwaga
Powinno (chyba) działać - nie testowałem :D Podane ścieżki do katalogów są przykładowe.
Startowy serwera
Wrzućmy go do /home/hlds/hlds_l/_serv1 i dajmy mu prawa wykonywalne (chmod +x)
#!/bin/bash ############### S_WORKDIR="/home/hlds/hlds_l"; # definuje katalog gdzie jest serwer S_BIN="./hlds_run"; # definiuje pik do wykonania S_GAME="cstrike"; # defiuje mod gry S_PORT="27015"; # port na jakim ma stac serwer gry S_MAXPL="18"; # maksymalna ilosc graczy S_RCON="******"; # haslo rcon S_MAP="de_dust"; # startowa mapa S_CFG="server.cfg" # startowy konfig serwera oraz wykonywany konfig co zmiane mapy S_PID="hldsds.pid" # plik gdzie przechowywany jest process id serwera, wymagany do mordowania serwera S_EXTRA="-pingboost 1" # dodatkowe komendy dodawane do parametru startowego serwera S_PLIK="_crash.log" # nazwa pliku do ktorego bedzie zapisywane kiedy serwer sie zrestartowal ################## while true; do cd $S_WORKDIR $S_BIN -game $S_GAME +port $S_PORT +maxplayers $S_MAXPL +rcon_password $S_RCON +map $S_MAP +exec $S_CFG +mapchangecfgfile $S_CFG -debug -pidfile $S_PID $S_EXTRA echo "Serwer zrestartowal sie: `date`" >> $S_PLIK done
Morderca serwera
Zapisujemy jako /home/hlds/hlds_l/killer i dajemy prawa do wykonywania (chmod +x)
#!/bin/bash ################# MOD_NAME="/home/hlds/hlds_l/"; #Wpisz tutaj sciezke bezwzgledna do serwera. ################ echo "Zamykam HLDS..." cd $MOD_NAME kill -9 `cat hlds.pid` >/dev/null 2>&1 if [ "$?" == "0" ]; then #rm -rf hlds.pid # usun "kratke", jesli chcesz, aby plik z numerem procesu byl usuwany przy wylaczaniu serwera echo "HLDS wylaczony pomyslnie" else echo "Nie ma odpalonego HLDS!" fi
Crontab
Co 12 godzin będzie mordował serwer, o żądanej godzinie
Wpisujemy w konsoli:
crontab -e
Wciskamy klawisz Insert i strzałeczkami dochodzmiy do pierwszej linii. Wpisujemy w niej taki oto tekst:
00 11 * * * /home/hlds/hlds_l/killer hlds.pid 00 23 * * * /home/hlds/hlds_l/killer hlds.pid
Potem wciskamy klawisz ESC i wpisyjemy (pojawi się na dole ekranu)
:w
Wciskamy Enter (powinnien na dole się pojawic tekst o zapisaniu pliku), wpisujemy znowu:
:q