PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl an laufenden Prozess senden und Ausgabe abfangen(?)


mef
06.08.06, 18:31
Hi,

die Frage mag etwas merkwürdig klingen, aber eine verständliche Formulierung wäre wohl zu lang für einen Titel geworden:rolleyes:.
Also die Situation ist folgende, ich hab heute mal EISFAIR auf meinen alten PC installiert und irgendwie kam ich dann auch gleich
in Versuchung mal einen Call of Duty Server darauf laufen zu lassen. Mitlerweilen geht auch alles ganz schön, ich kann übers Menü
in Eisfair schön start/stop klicken und es klappt auch ganz schön. Nur möchte ich natürlich auch noch die möglichkeit nutzen,
mir den Status anzeigen zu lassen...Daher-gibt's einen Befehl mit welchem ich einen Befehl an den laufenden server senden kann und dann die Ausgabe als echo zurückkriege? In meinem Fall wäre dass dann 'status', daraufhin liefert der Server normalerweise dann spieler / pings / laufende map etc... wäre schön wenn ich nicht immer gleich per UDP eine Statusanfrage durchjagen müsste:p
Vielleicht ein bisschen viel nach erst einem Tag Linux aber ich kann den Befehl einfach nicht finden...wenns ihn überhaupt gibt.

greetz mef

p.s. "normalerweise" soll heissen, wenn ich den server ganz normal in der Console öffne, dann seh ich die Ausgabe direkt, aber wenn ich die Konsole wieder schliesse ist dann eben auch der Server geschlossen und der Process gekillt, ich möchte dass das ganze im Hintergrund läuft...

rudi_m
06.08.06, 20:38
ja, ich hab mir aus den xqf sourcen einen rcon client für die console gebastelt.
Mittels cron, etc. kann man so lustige Dinge auf dem Server automatisieren.

Wenn Du Interesse hast kann ich Dir den Source schicken.

mef
06.08.06, 21:21
Cool, gerne :-D, dann entfällt warscheinlich auch einiges umständliches(processID hohlen etc könnte ich mir vorstellen...) Hab mir nun mal das devPacket für eisfair gesaugt, hoffentlich compiliert dass auch brav(hab noch nie was für Linux compiliert:eek: )

mef
07.08.06, 12:06
Habs mitlerweile sogar selbst hinbekommen, compilieren, rcon senden und antwort empfangen und alles läuft super. Nur habe ich noch 2 kleine Fragen-und zwar wie du zum Beispiel feststellst auf welchem Port der Server läuft? Falls man ihn nicht sauber beendet dann startet er nächstes mal dann ja mit einem anderen Port... und zweitens wie man in GCC einen Timout für ein Socket setzt..man kann natürlich mit ctrl+c auch einfach abbrechen aber schöner wäre wenn das Programm ausspucken würde dass es eben ein Timout ist :D. In Winsock hab ichs einmal hinbekommen, aber die Funktion SetTimout scheint bei linux sockets anders auszusehen, ich bekomme jedenfalls einen Fehler beim compilieren-undefined reference to "SetTimeout", gibts evt einen ähnlichen Befehl?