• 16.04.2024, 16:43
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 21:33

Hi,

ich arbeite gerade an einem webinterface für css gameserver. mir fehlt nun nur noch ne funktion, die den gameserver neu starten lässt :(

die befehle, die man dazu im linux ausführen muss sind:

Zitat

killall srcds_run
killall srcds_amd
-
./srcds_run -game cstrike +map de_dust -maxplayers 16 -pingboost 2 &


diese müssen vom benutzer gserver1 ausgeführt werden. wie bekomme ich das hin ?
geht das mit php irgendwie ?

Gruß Maddin

//edit: oder wie soll ich das sonst machen ?

Re: Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 21:38

Ich kenn mich da kein bisschen aus ...


... aber geht das nicht mit dem Mani Admin Plugin?


MfG
Ripper

Re: Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 21:49

warum benutzt du nicht http://sourceforge.net/projects/srcdspy/ ?

Re: Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 21:50

In PHP kannst du mit der Funktion exec() Befehle auf der Konsole ausführen wobei da natürlich die Rechte ensprechend gesetzt sein müssen.

exec('./srcds_run -game cstrike +map de_dust -maxplayers 16 -pingboost 2 &');

Re: Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 21:57

Zitat von »Y0Gi«

warum benutzt du nicht http://sourceforge.net/projects/srcdspy/ ?


weil ich mich mit pyton wenig nicht auskenne..

shoggy: kann ich exec auch irgendwie userdaten mitgeben, passwort z.B. ?
oder den befehl unter einem bestimmten user ausführen ?
unter php.net hab ich nichts brauchbares gefunden

edit:
yogi: aber wenn du mir das erklären würdest würde ich es sicher probieren. hab auf der homepage kein tutorial oder sowas gefunden :(
reicht es, wenn auf dem server Python 2.3.3 Interpreter installiert is ?

Re: Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 22:15

Zitat von »DerMaddin«

shoggy: kann ich exec auch irgendwie userdaten mitgeben, passwort z.B. ?
oder den befehl unter einem bestimmten user ausführen ?
unter php.net hab ich nichts brauchbares gefunden


Keine Ahnung ob ich die da richtig verstanden habe; hier mal ein Beispiel:

$benutzer = 'hans';
$passwort = 'toastbrot';
$befehl = './bla bla';
exec("$befehl $benutzer $passwort");

Ich denke du weisst schon wie ich das meine. Ich weiss allerdings nicht ob es dir etwas nutzt ;)

edit: mit system() würdest du auch noch eine Rückmeldung bekommen falls gewünscht.

...
echo system("$befehl $benutzer $passwort");

Re: Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 22:41

shoggy's schnipsel rufen förmlich "malicious command injection!!" ;)
wenn du benutzereingaben nicht wirklich gut filterst und überprüfst, läufst du gefahr, dir dein ganzes system von einem bösen buben zerschießen zu lassen.


Zitat von »DerMaddin«

weil ich mich mit pyton wenig nicht auskenne..

ist sehr leicht zu erlernen. wenn du allerdings schon besonders weit mit deinem projekt bist, lohnt es sich dafür wohl nicht mehr. für die zukunft ist es aber als hervorragende allround-sprache immer wieder sehr gut zu gebrauchen.


Zitat von »DerMaddin«

yogi: aber wenn du mir das erklären würdest würde ich es sicher probieren. hab auf der homepage kein tutorial oder sowas gefunden :(
reicht es, wenn auf dem server Python 2.3.3 Interpreter installiert is ?

2.3 reicht aus (ich wünschte, ich hätte 2.3 zur verfügung... naja, ende mai kommt ja hoffendlich endlich der sarge und alles wird gut :D).

das offizielle tutorial findest du hier: http://docs.python.org/tut/tut.html

du benötigst das SRCDS-archiv von der projektseite. darin ist ein python-script enthalten, das eine gleichnamige klasse enthält, mit der du arbeiten kannst. dort sind die folgenden rcon-kommandos schon als python-methoden verfügbar:
changelevel(map)
say(statement)
quit()
status()
sowie einige weitere (s. darunter, "No RCON Section").

ein einfaches script, dass du auf dem webserver als irgendwas.py ablegst und mit ausführrechten (chmod 755 irgendwas.py) versiehst, könnte etwa wie folgt aussehen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

"""
Ein Script zur Ansteuerung von HL2-Servern.
"""

import cgitb; cgitb.enable()  # cgi-traceback für hübsche Fehlerausgaben aktivieren
import SRCDS  # Datei muss im gleichen Ordner liegen


# Konfiguration
host = 'localhost'
port = 27015
password = 'geheim'

# Ausgabe beginnen
print 'Content-Type: text/html\n'
print 'Test, Test.<br/><br/>'

# Instanz der Klasse erzeugen
srcds = SRCDS.SRCDS(host, port, password)

# Einen Spruch absetzen
spruch = 'Deine Mudda leuchtet am Schuh!'
srcds.say(spruch)
print 'Spruch "%s" wurde abgesetzt.<br/>' % (spruch)

# Status auslesen
print 'Status wird ausgelesen:<br/>'
players = srcds.status()  # gibt eine Liste von Dictionaries zurück
for p in players:
  for key, value in p.items():
    print '%s: %s<br/>' % (key, value)
  print '<br/>'


viel spaß :)

Re: Webinterface für CSS-Server

Dienstag, 10. Mai 2005, 22:43

ich meinte, ob man da auch mitgeben kann, welcher linuxuser die befehle ausführen soll.

ich hab mir ja den benutzer gserver1 angelegt, der soll die befehle ausführen

yogi: das sieht ganz gut aus, vlt kann ich es ja mit einbinden, nur leider kann man so weit ich das jetzt sehe den server nicht restarten und um das geht es mir im moment.. :( (aus geht er, jedoch nich wieder an)

Re: Webinterface für CSS-Server

Mittwoch, 11. Mai 2005, 12:56

das müsste mit sudo funktionieren.
also exec(sudo -u username ./blabla usw)
das problem wird dann das passwort.

Re: Webinterface für CSS-Server

Mittwoch, 11. Mai 2005, 14:25

meinst du restarten "innerhalb" des servers oder willst du den ganzen server runterfahren und dann einen neuen prozess starten? warum solltest du ihn neu starten wollen?

Re: Webinterface für CSS-Server

Mittwoch, 11. Mai 2005, 18:53

er sollte so neugestartet werden, dass die configs, die geändert wurden, neu übernommen werden.

Re: Webinterface für CSS-Server

Mittwoch, 11. Mai 2005, 22:15

gibts dafür denn kein rcon-kommando?

Re: Webinterface für CSS-Server

Donnerstag, 12. Mai 2005, 00:40

es gibt quit, denn bleibt der server aber auch aus ;)

Re: Webinterface für CSS-Server

Donnerstag, 12. Mai 2005, 02:29

Das mit dem starten und killen unter dem gameserver-linux-user
wird nur gehen wenn php unter dem selben benutzer läuft.

Was du allerdings machen könntest ist den wert für start, oder stop
in ne datenbank zu schreiben, und alle x minuten per cronjob zu überprüfen

Re: Webinterface für CSS-Server

Donnerstag, 12. Mai 2005, 10:04

das hört sich gut an, kannst du das einmal näher erläutern ?