startscript

Alles rund um das scripten und Server aufsetzen
Antworten
Pfann
Grünschnabel
Grünschnabel
Beiträge: 7
Registriert: Fr 10. Aug 2007, 12:10

startscript

Beitrag von Pfann »

hi leute, kann mir jemand sagen wieso mein server down geht wenn ich putty schließe`?


hier mein startscript

#!/bin/sh
./etded.x86 +set dedicated 2 +set net_IP 88.198.52.76 +set net_port 27966 +set fs_basepath ./ +set com_hunkMegs 64 +set fs_game etpro +set com_zoneMegs 24 +set vm_game 0 +set ttycon 0 +exec server.cfg
silver
Hero of City
Hero of City
Beiträge: 4731
Registriert: Di 1. Jul 2003, 17:35
Wohnort: Castle Wolfenstein
Kontaktdaten:

Beitrag von silver »

hm das problem hatte madgun letztens auch. ka wies der gelöst hat. wenn ich ihn erwisch frag ich ihn mal.
Bild
Bild
[url=irc://de.quakenet.org/wolfenstein-city]#wolfenstein-city @ quakenet[/url]
https://rtcw-city.de
www.EnemyTerritory.de
Pfann
Grünschnabel
Grünschnabel
Beiträge: 7
Registriert: Fr 10. Aug 2007, 12:10

Beitrag von Pfann »

Hilfe ^^
Benutzeravatar
Master Mayhem
Helpdesk
Helpdesk
Beiträge: 1395
Registriert: Sa 28. Jun 2003, 13:36
Wohnort: Castle Wolfenstein
Alter: 90
Kontaktdaten:

Beitrag von Master Mayhem »

Nabend!

Ich such zwar grade nach meinem Problem, dass meine Scripte in der autoexe.cfg bei etpub nicht ausgeführt werden, bei allen anderen mods schon....son mist die befehlsnamen stehen drin im ingame menü keine ??? wie bei den anderen mods, wo meine scripte wunderbar funktionieren (eigentlich alles toggle scripte).

Naja, aber das ist schnell erledigt....mensch silver ich denke du zockst unter linux....

Also wenn du mit putty auf den Server gehst öffnest du eine shell, in der du dann den durchaus tollen startbefehl für et ausführst. Nur wenn du dann putty schließst, bzw die Verbindung trennst, wird die shell beendet und damit dein schöner server, denn der ist ein child prozess von der shell und damit davon abhängig dass der parent prozess, also die shell läuft.

Für einfache programme, die keine weitere konsole haben wenn sie laufen, und die ausgaben eh in logdateien gehen, und keine interaktion benötigen reicht ein "nohup" davor zu setzten. Da du aber die Konsole von et sehen willst nach einem erneuten login empfehle ich screen. Damit habe ich zumindestens immer den et server laufen lassen aus der ssh Verbindung.

Einfach in einer screen shell starten und diese in den hintergrund verschieben, bevor du putty beendest. Nach einem reconnect kommste über die pid, oder über den namen der session ran, wenn du einen vergeben hast.

http://www.linux-user.de/ausgabe/2001/0 ... ehl12.html
http://www.lug-jena.de/veranstaltungen/screen.html

cu tyler
Bild

Bild

Wer Rechtschreipfähler findet, darf diese NICHT behalten, die gehören mir!

He was killed serving Project Mayhem, sir!
ciTy][Tyler

Ich bin /ruth, ich darf das!
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Hi, Pfann, willkommen in der City!

Also wenn du in die Console von ET später wieder hinein willst, solltest du 'screen' verwendet (wie Master Mayhem bereits schrieb).
Wenn du den laufenden Server aber über rcon (in ET) administrieren willst und die Console nicht mehr brauchst, kannst du den Server forken (vom Vater ablösen). Ich habe es immer so gemacht, daß ich den Prozess in den Hintergrund geschickt habe, seine Ausgabe an den unermäßlichen Datenspeicher /dev/null geschickt habe, und dann mit 'logout' die Shell geschlossen habe.
Der Vater 'bash' des Prozesses 'etded.x86' stirbt zwar, aber bei mir hat dann der Vater aller Prozesse 'init' die Vormundschaft übernommen.

Code: Alles auswählen

./etded.x86 +set dedicated 2 +set net_IP 88.198.52.76 +set net_port 27966 +set fs_basepath ./ +set com_hunkMegs 64 +set fs_game etpro +set com_zoneMegs 24 +set vm_game 0 +set ttycon 0 +exec server.cfg > /dev/null 2>&1 &
Sollte das nicht funktionieren, gibt es bei jeder Distribution ein Programm, das ein anderes Programm als Daemon starten kann.
Bei Debian nennt es sich 'start-stop-daemon'. Bei allen Distris die auf Debian basieren (Ubundu, Kubundu, Knoppix, etc...) sollte es auch dabei sein.

Code: Alles auswählen

start-stop-daemon --background --start --make-pidfile --pidfile /var/run/etded.x86.pid --exec etded.x86 -- +set dedicated 2 +set net_IP 88.198.52.76 +set net_port 27966 +set fs_basepath ./ +set com_hunkMegs 64 +set fs_game etpro +set com_zoneMegs 24 +set vm_game 0 +set ttycon 0 +exec server.cfg
Und um es ganz fein zu machen, kannst du dir ein Start-Stop-Script machen, das du unter /etc/init.d/ ablegst und in den Runlevels (/etc/rcX.d) verlinkst.
Damit wird der ET-Server auch bei einem Neustart des Rechners automatisch wieder geladen.

/etc/init.d/et-server

Code: Alles auswählen

#!/bin/sh

SERVER_ROOT="/usr/local/games/enemy-territory"
SERVER_BIN="etded.x86"
SERVER_PID="/var/run/etded.x86.pid"
SERVER_OPTIONS="+set dedicated 2 +set net_IP 88.198.52.76 +set net_port 27966 +set fs_basepath ./ +set com_hunkMegs 64 +set fs_game etpro +set com_zoneMegs 24 +set vm_game 0 +set ttycon 0 +exec server.cfg"

case "$1" in
'start')
    if [ -r $SERVER_PID ]; then
        echo "${SERVER_BIN} is actually running!"
        exit;
    else
        echo -n "starting ET-Server... "
        cd $SERVER_ROOT
        start-stop-daemon --background --start --make-pidfile --pidfile $SERVER_PID --exec etded.x86 -- $SERVER_OPTIONS
            echo "done"
    fi
    ;;
'stop')
    if [ -r $SERVER_PID ] ; then
        echo -n "stopping ET-Server... "
        start-stop-daemon --stop --oknodo --pidfile $SERVER_PID
        rm -f $SERVER_PID
        echo "done"
    else
        echo "Could not find a PID for ${SERVER_BIN}!"
    fi
    ;;
'restart')
    $0 stop
    sleep 2
    $0 start
    ;;
*)
    echo "usage $0 start | stop | restart"
esac
mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Antworten