Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Server Startscript Problem

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
miChaXserial
Gast





BeitragVerfasst am: 28. Jan 2011 18:53   Titel: Server Startscript Problem

Hallo guten Abend liebe Linux Gemeinde,
hoffe mit euch das Problem lösen zu können :>

Das folgende Script existiert 6 mal wobei immer nur der `NAME` als TDM,CTF,FFA,DUEL,FREEZE geändert ist, doch wenn man einen der anderen startet ist der erste zwar noch im `screen -ls` zu lesen doch da ist er nicht mehr.

Alles manuell zu starten klappt ohne Probleme

Code:

G_USER=root
NAME=CA
DESC="Quakelive Server"
PARAMS="+set sv_pure 1 +set dedicated 2 +exec CA.cfg"
DIR=/home/QL
SCRIPT=qll
DAEMON=$DIR/$SCRIPT
 
case "$1" in
   start)
       if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
      then
         echo "$DESC is already running!"
      else
         echo "Starting $DESC: $NAME"
         su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
      fi
    ;;
 
   stop)
      if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
      then
         echo -n "Stopping $DESC: $NAME "
         kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
         echo " ... done."
      else
         echo "Coulnd't find a running $DESC"
      fi
   ;;
 
   restart)
      if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
      then
         echo -n "Stopping $DESC: $NAME "
         kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
         echo " ... done."
      else
         echo "Coulnd't find a running $DESC"
      fi
 
      echo -n "Starting $DESC: $NAME"
      su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
      echo " ... done."
   ;;
 
   status)
      ps aux | grep -v grep | grep $SCRIPT > /dev/null
      CHECK=$?
      [ $CHECK -eq 0 ] && echo "$DESC is UP" || echo "$DESC is DOWN"
   ;;
 
   *)
      echo "Usage: $0 {start|stop|restart|status}"
      exit 1
   ;;
 
esac
 
exit 0


Dachte er macht schön alles in einzelnen screens stattdessen immer nur der eine Socket. Muss der `Deamon` vielleicht umbenannt werden?

Und evt. noch eine Idee das ganze für alle 6 Server in einem Script zu vereinen?

Danke im Voraus
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 28. Jan 2011 21:18   Titel:

Wenn ich dich recht verstehe, möchtest du mehrere Instanzen des Quakelive-Servers starten. Bei dir verwenden aber alle Skripte dieselbe Konfiguration für den Daemon.

Was ich *vermute* ist folgendes (kenne Quakelive nicht): Der in der Konfiguration angegebene Netzwerk-Port zum Connecten kann nur einmal pro Rechner benutzt werden. Den will aber jeder der Daemons aufmachen, und das klappt natürlich nicht, wenn er schon von einem anderen belegt ist. Vermutlich löst sich dein Problem, wenn du jedem Daemon eine eigene Konfigurationsdatei mit jeweils anderem Netzwerk-Port gibst.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

miChaXserial
Gast





BeitragVerfasst am: 29. Jan 2011 10:30   Titel:

Hallo guten Morgen,

das mit dem Netport können wir ausschließen da bei jedem Serverscript auch bei den `Params` eine eigene *.cfg angegeben ist wo jeder einen anderen Netport und andere Zeit/Powerup/Teamdamage/etc. Einstellungen bekommt.
Wenn ich alle 6 auf einmal starte sehe ich sie für einen kurzen Moment in der Prozessliste stehen jedoch sind kurz darauf alle anderen 5 wieder weg. Auch das mit den Netports ist dort gut zu sehen das jeder einen anderen Port nutzt. In welcher logfile könnte ich da evt. fündig werden? mfg miCha
 

komsomolze



Anmeldungsdatum: 03.03.2006
Beiträge: 429

BeitragVerfasst am: 12. Feb 2011 15:39   Titel:

Das noch gefunden:
Zitat:
Code:

sudo ./qll +set dedicated 2 +set sv_pure 0 +set fs_homepath = ~/.quakelive +set fs_basepath = ~/qlded ...
also jeder Instanz einen eigenen homepath/basepath geben?
(Hardlinks für die pk3)

(Warum muß daß Ding eigentlich 'su root' laufen?)
-> verschiedene Benutzer nehmen


Falls das binary dann noch die Prozeßliste abklappert,
hilft vielleicht sowas wie der openwall-Patch (bis Kernel 2.4)
http://www.openwall.com/linux/README.shtml :
Zitat:

Restricted /proc.
...
This option restricts the permissions on /proc so that non-root users can see their own processes only, and nothing about active network connections, ...
-> Moderner wäre grsecurity http://grsecurity.net/features.php, zBsp.
Zitat:

* /proc restrictions that don't leak information about process owners
oder ein anderes Kernelsecurity-Modell
oder ein chroot (die fetten pk3 können da ja hardlinked sein).
_________________
mfg komsomolze
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy