Komm in unsere Facebook Gruppe

Willkommen Gast
Du bist nicht angemeldet, um alle Funktionen des Forums zu nutzen musst du dich registrieren und anmelden. Die Registrierung ist natürlich völlig kostenlos und kann jeder Zeit wiederrufen werden.

Aktuelle Zeit: 22. Mai 2012 08:13

Automatischer Neustart

Forum zu den Servern aus der CS 1.x Reihe


Automatischer Neustart

Beitragvon DerSchakal am 14. Mär 2008 20:07

Abend @all,
ich bin geraade am Überlegen, wie ich täglich nachts um 05:00 Uhr nacheinander die CS-Server "restarten" kann?!
Klar, auf jeden Fall mit einem Cronjob. Wie kann ich jedoch "restart" aufm Server abesetzen?! Die CS Server sind per screen gestartet...und sollen nicht "gekillt" werden!
Any ideas??


Grüße
Schakal
DerSchakal
Mitglied
Mitglied
 
Beiträge: 43
Registriert: 6. Jan 2008 21:26

Re: Automatischer Neustart

Beitragvon Etnie am 14. Mär 2008 20:48

Code: Alles auswählen
#! /bin/sh
#
# What you need:
#
# Linux :)
# awk
# screen

# The user that will run the server
CS_USER=etnie

# Leave this alone.
NAME=hlds

PATH=/bin:/usr/bin:/sbin:/usr/sbin

# DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/home/etnie/hlds_1

# Leave this alone.
DAEMON=hlds_run

# LAN-server:
PARAMS="-game cstrike -binary ./hlds_i686 +map de_dust2 +maxplayers 12 -port 27015 -pingboost 2 +sys_ticrate 2000 +fps_max 1000 -nomaster +sv_lan 1 -insecure"

# Leave this alone.
DESC="Counter-Strike dedicated server"

case "$1" in
 start)
    if [[ `screen -ls |grep hlds_1` ]]
       then
       echo "HLDS is already running!"
    else
       echo "Starting Counterstrike Server No.1"
       cd $DIR; screen -m -d -S hlds_1 ./$DAEMON $PARAMS
    fi
    ;;

 stop)
    if [[ `screen -ls |grep hlds_1` ]]
       then
       echo -n "Stopping Counterstrike Server No.1"
       kill `screen -ls |grep hlds_1 |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... done."
    else
       echo "Coulnd't find a running $DESC"
    fi
    ;;

 restart)
    if [[ `screen -ls |grep hlds_1` ]]
       then
       echo -n "Stopping Counterstrike Server No.1"
       kill `screen -ls |grep hlds_1 |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... done."
    else
       echo "Coulnd't find a running $DESC"
    fi
   
    echo -n "Starting Counterstrike Server No.1"
    cd $DIR; screen -m -d -S hlds_1 ./$DAEMON $PARAMS
    echo " ... done."
    ;;

 status)
    ps aux | grep -v grep | grep hlds_r > /dev/null
    CHECK=$?
    [ $CHECK -eq 0 ] && echo "HLDS is UP" || echo "HLDS is DOWN"
    ;;
 *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac

exit 0


Mit diesem Script starte ich meine Server kannst dann einfach einen Cronjob machen der dir dann "/etc/init.d/hlds_1 restart" ausführt
Etnie
Mitglied
Mitglied
 
Beiträge: 82
Registriert: 1. Nov 2006 16:42

Re: Automatischer Neustart

Beitragvon DeaD_EyE am 15. Mär 2008 13:05

Wieso sollen die Screens nicht gekillt werden?
Du kannst ja per Script dem Server Rcon-Befehle (_restart oder quit) übermitteln.

http://forum.sourceserver.info/viewtopic.php?f=29&t=862
Viel Spaß beim Lesen.
Benutzeravatar
DeaD_EyE
Moderator
Moderator
 
Beiträge: 583
Registriert: 18. Aug 2007 14:57
Wohnort: Hagen

Re: Automatischer Neustart

Beitragvon DerSchakal am 15. Mär 2008 13:42

Hi,
killen ist keine Option, da ich das gerne sauber lösen möchte. Killen tun nur die, wo es nicht besser wissen bzw. zu faul sind! :D
Das Modul ist aber für Half-Life 2. Ich habe hier nur CS 1.6 Server. Hab ich vergessen zu sagen... :-(


Grüße
Dani
DerSchakal
Mitglied
Mitglied
 
Beiträge: 43
Registriert: 6. Jan 2008 21:26

Re: Automatischer Neustart

Beitragvon DeaD_EyE am 15. Mär 2008 15:31

"screen -S screenname -X kill" ist nicht sauber? Möchtest du vielleicht noch auf Knien betteln, damit der Server sich dazu bewegt mal neuzustarten? Andere Möglichkeiten gibt es nicht. Entweder den Prozess mit diversen Befehlen killen (es gibt verschiedene Signale, die gesendet werden können) oder per Rcon. Ich persönlich würde den Weg über Rcon nicht nutzen.

Achja, es gibt da noch einen dritten Weg. Es gibt Serverplugins und noch ein Eventscripts welches das erledigt. Das wäre aber wieder uninteressant, da es auf Warserver für Liga wars sowiso nicht erlaubt ist.

Der Weg über kill oder screen -S screenname -X kill ist einheitlich und benötigt keine Serverplugins. Jetzt sag mir was dagegen spricht einen Server so um 5 Uhr morgens zu beenden?
Benutzeravatar
DeaD_EyE
Moderator
Moderator
 
Beiträge: 583
Registriert: 18. Aug 2007 14:57
Wohnort: Hagen

Re: Automatischer Neustart

Beitragvon DerSchakal am 16. Mär 2008 20:14

Abend,
screen -S screenname -X kill" ist nicht sauber?

Diese Zeile schon, aber im Script (oben) wird direkt der KILL Befehl angewandt. Und das ist eben nicht mein Stil. Mache ihc unter Linux sehr ungerne.
Ich werde das mal in Ruhe testen und euch dann Rückmeldung geben....


Gruß
Schakal
DerSchakal
Mitglied
Mitglied
 
Beiträge: 43
Registriert: 6. Jan 2008 21:26

Re: Automatischer Neustart

Beitragvon Etnie am 16. Mär 2008 21:30

Bei mir stört das Script nicht da ich es nur für LAN´s nutze, bedeutet ich starte den Rechner, starte die Server und das war es. Am Ende der LAN stoppe ich damit alle Server und fahre Rechner runter. Da ist es egal ob es sauber ist, auf einem Root der im Inet läuft würde ich den script noch bisschen umändern
Etnie
Mitglied
Mitglied
 
Beiträge: 82
Registriert: 1. Nov 2006 16:42

Re: Automatischer Neustart

Beitragvon DerSchakal am 17. Sep 2008 19:53

Hi Etnie,
ich habe dein Script nun kopiert und leicht angepasst. Beim "kapieren" ist mir diese Zeile aufgefallen:
Code: Alles auswählen
# The user that will run the server
CS_USER=test

Nur wird diese Variable nirgends weiter benutzt?! Wie müsste das Script aussehen, wenn der Gs unter einem extra User laufen soll?
DerSchakal
Mitglied
Mitglied
 
Beiträge: 43
Registriert: 6. Jan 2008 21:26


Zurück zu Counter Strike 1.x




Ähnliche Beiträge