• 27.08.2025, 02:55
  • Register
  • Login
  • You are not logged in.

 

DerMaddin

Full Member

Webinterface für CSS-Server

Tuesday, May 10th 2005, 9:33pm

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:

Quoted

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 ?

juergen_schelhorn

God

Re: Webinterface für CSS-Server

Tuesday, May 10th 2005, 9:38pm

Ich kenn mich da kein bisschen aus ...


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


MfG
Ripper

Y0Gi

God

Re: Webinterface für CSS-Server

Tuesday, May 10th 2005, 9:49pm

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

Shoggy

Sven - Admin

Re: Webinterface für CSS-Server

Tuesday, May 10th 2005, 9:50pm

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 &');

DerMaddin

Full Member

Re: Webinterface für CSS-Server

Tuesday, May 10th 2005, 9:57pm

Quoted from "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 ?

Shoggy

Sven - Admin

Re: Webinterface für CSS-Server

Tuesday, May 10th 2005, 10:15pm

Quoted from "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");

Y0Gi

God

Re: Webinterface für CSS-Server

Tuesday, May 10th 2005, 10:41pm

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.


Quoted from "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.


Quoted from "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:

Source code

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ß :)

DerMaddin

Full Member

Re: Webinterface für CSS-Server

Tuesday, May 10th 2005, 10:43pm

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)

nixxxo

Full Member

Re: Webinterface für CSS-Server

Wednesday, May 11th 2005, 12:56pm

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

Y0Gi

God

Re: Webinterface für CSS-Server

Wednesday, May 11th 2005, 2:25pm

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?

DerMaddin

Full Member

Re: Webinterface für CSS-Server

Wednesday, May 11th 2005, 6:53pm

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

Y0Gi

God

Re: Webinterface für CSS-Server

Wednesday, May 11th 2005, 10:15pm

gibts dafür denn kein rcon-kommando?

DerMaddin

Full Member

Re: Webinterface für CSS-Server

Thursday, May 12th 2005, 12:40am

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

Giffman

Senior Member

Re: Webinterface für CSS-Server

Thursday, May 12th 2005, 2:29am

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

DerMaddin

Full Member

Re: Webinterface für CSS-Server

Thursday, May 12th 2005, 10:04am

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