Nowe posty

Autor Wątek: Kupie skrypt - autorestart serwera gry w screenie  (Przeczytany 6098 razy)

sylwek-m

  • Gość
Kupie skrypt - autorestart serwera gry w screenie
« dnia: 2008-12-30, 23:20:57 »
Witam
Posiadam konto shellowe na serwerze. Mam tam serwer do gry mohaa który odpalam w screenie. Niestety serwer mohaa lubi sie wysypac, sam z siebie. Potrzebuje taki skrypt który bedzie co np 60s sprawdzał czy serwer sobie pracuje, w razie gdyby nie pracował to robił mu autorestart. W necie znalałem takie rzeczy jak:

#! /bin/sh
NAME=12206

DESC="Medal of Honor"
PARAMS="+set net_port 12206 +set net_IP 82.160.143.132 +exec 12206.cfg"
DIR=/home/sylwek/MoHAA1.11
SCRIPT=mohaa_lnxded

DAEMON=$DIR/$SCRIPT

while true ; do
if [[ `screen -ls |grep $NAME` ]]
then
echo "MOHAA online"
else
echo "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
fi
sleep 60
done

exit 0

-----------------

#! /bin/sh
NAME=12203

DESC="Medal of Honor"
PARAMS="+set net_port 12203 +set net_IP 82.160.143.132 +exec 12203fg"
DIR=/home/sylwek/MoHAA1.11
SCRIPT=mohaa_lnxded

DAEMON=$DIR/$SCRIPT

if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stoppe $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... Server gestoppt."
else
echo "Konnte keinen laufenden Server mit PID -- $DESC -- nicht finden"
fi

exit 0

---------
coś jest tutaj

http://www.fpsadmin.com/forum/showthread.php?t=9013

I nic mi oczywiście z tego nie działa. Jeśli ktoś mi pomoże z pozytywnym rezultatem to oczywiście sie na wynagrodzenie dogadamy. Czekam na propozycjie:)

gomath

  • Gość
Kupie skrypt - autorestart serwera gry w screenie
« Odpowiedź #1 dnia: 2009-01-02, 14:53:50 »
Zmodyfikuj swój skrypt tak, aby warunek wyglądał podobnie do poniższego:

#!/bin/sh
if [ "`screen -ls | grep $NAME`" ]
then
  echo 'chodzi'
else
  echo 'nie chodzi'
fi

sylwek-m

  • Gość
Kupie skrypt - autorestart serwera gry w screenie
« Odpowiedź #2 dnia: 2009-02-27, 17:12:46 »
No i napisałem. Ale mam jeden problem:

line 20: syntax error: unexpected end of file

Skrypt wygląda tak:

#!/bin/bash
NAME=12204
DESC="Medal of Honor"
PARAMS=" +set net_port 12206 +set net_IP 82.160.143.132 +exec 12204.cfg"
DIR=./MoHAA1.11
SCRIPT=mohaa_lnxded
DAEMON=$DIR/$SCRIPT
while true ; do
if [ "`screen -ls |grep $NAME`" ]
then
echo "MOHAA online"
else
echo "Starte $DESC: $NAME"
cd $DIR
screen -R $NAME $DAEMON $PARAMS
fi
sleep 60
done
exit 0

Z góry dzięki za pomoc:)

zb0k

  • Gość
Kupie skrypt - autorestart serwera gry w screenie
« Odpowiedź #3 dnia: 2009-03-08, 03:37:23 »
Co będziesz się męczył ze skryptami -  zainstaluj monita.

arctgx

  • Gość
Kupie skrypt - autorestart serwera gry w screenie
« Odpowiedź #4 dnia: 2009-03-08, 14:57:37 »
#!/bin/bash
NAME=12204
DESC="Medal of Honor"
PARAMS=" +set net_port 12206 +set net_IP 82.160.143.132 +exec 12204.cfg"
DIR=./MoHAA1.11
SCRIPT=mohaa_lnxded
DAEMON=$DIR/$SCRIPT
while true ; do
if [ "`screen -ls |grep $NAME`" ]
then
echo "MOHAA online"
else
echo "Starte $DESC: $NAME"
cd $DIR
screen -R $NAME $DAEMON $PARAMS
fi
sleep 60
done
exit 0
Nie potrafię odtworzyć błędu ani też nie dopatruję się sam brakującego elementu składni. Przy okazji, dla własnej i naszej wygody mógłbyś używać wcięć jak to wyżej zaprezentowałem.

Przy okazji, kiedy odpaliłem Vima z nazwą nowego pliku z rozszerzeniem .sh i wkleiłem Twój skrypt, Vim zrobił wcięcia automatycznie.

sylwek-m

  • Gość
Kupie skrypt - autorestart serwera gry w screenie
« Odpowiedź #5 dnia: 2009-03-13, 12:10:41 »
A jakiego monita polecacie?? aby dało sie go obslugiwać przez ssh??

sylwek-m

  • Gość
Kupie skrypt - autorestart serwera gry w screenie
« Odpowiedź #6 dnia: 2009-03-19, 23:45:16 »
Pomęczyłem ten skrypt. Jest wszystko ok. Problem tkwi chyba w linuxie. Mam konto shellowe na fedorze. Skrypt nie działa gdy są w nim petle if lub while. Podejrzewam że trzeba coś doinstalować do tej fedory. Macie jakiś pomysł??