linux game server restarten

Chakky

Member of Honour
Hi
also, wir (ein kumpel und ich) haben seit Mittwoch einen Root-Server auf dem wir einen Elite Force Dedicated Server am laufen haben.
Nach zweitägigem rumgemache haben wir ihn endlich zum laufen bekommen. Nun ist aber das Problem dass wir, wenn wir neue Maps Online haben und diese auch Spielen wollen oder etwas an der Basiskonfiguration geändert haben, den EF-Server neustarten müssen.
Meine Frage hierzu: Gibt es da eine Möglichkeit dies über ein Script (wenn möglich in PHP) zu realisieren dass wir den EF-Server neustarten ohne die PID über's Putty zu killen?
Es wäre nett wenn jemand einen Vorschlag machen könnte da ich keine Ahnung wie ich per PHP die PID rausfinden geschweige denn diese Killen kann und dann nochmal das Programm starten kann.
Die Programmdatei liegt im Verzeichniss /usr/local/games/stvef und nennt sich linuxstvefded_1.2-static.
Wie ich sie per Putty starte ist kein Problem. Da gebe ich einfach nohup ./linuxstvefded_1.2-static +exec server.cfg ein und der Server startet ohne dass der an die Ausgabe im Putty gebunden ist.

weiß einer einen rat?
 
schau dir mal die php funktionen exec() und system() an
ansonsten einfach mal in der documentation auf php.net suchen...

cya idefix
 
mit der fkt exec habe ich schon probiert ging net.

edit:
mit der system geht es auch net :/

noch andere ideen?
 
Hi,
legt der Server eine Pid file an??
Wenn ja schenke ihm doch folgendes:
Code:
<? exec("/bin/kill -HUP |/bin/cat /var/<wo auch immer deine pid>"); ?>
Wenn nicht mußt du die Pid über den PS befehl finden:
und dann den Kill befehl geben.

Oder du erstellst dir ein startscript welches das macht.
Code:
case "$1" in
'start')
        /usr/local/games/stvef/linuxstvefded_1.2-static +exec server.cfg >/dev/null
        touch /var/lock/subsys/linuxstvefded_1.2-static
        ;;
'stop')
        /usr/bin/killall linuxstvefded_1.2-static
        rm -f /var/lock/subsys/linuxstvefded_1.2-static
        ;;
'restart')
       stop
       start
      ;;
*)
        echo "Usage: $0 { start | stop|restart }"
        ;;
esac
exit 0


Gruß TheDoc
 
sowas dürfte mit php auf nem root server eigentlich nicht gehen ....
wenn du jetzt noch nen ptrace oder do_brk() buggy kernel hast un nen phpnuke installiert findest du dich bald auf zone-h.org

also ich habe mein php zimelich kastriert :D
 
wenn auf dem server nur ein Elite Force Dedicated Server läuft kann man ihn einfach mit
killalll -HUP/SIGHUP name_des_efd_servers
 
Zurück
Oben