Hallo liebe Community,
Ich versuche gerade verzweifelt ein Script hinzubekommen mit dem man einen Befehl an eine Screen Session schicken kann. Ich habe ca. 2 Stunden gegoogelt und zwar den Befehl screen -X -S SCREENNAME exec BEFEHL gefunden, allerdings klappt das nicht so ganz.
In dem Screen läuft ein Gameserver, nun möchte ich per PHP ein Script schreiben, mit dem man Befehle an den Server übergeben kann.
Falls jemandem eine andere Lösung einfällt wäre ich sehr dankbar. Gegebenenfalls wäre ein Onlineterminal des Screens auch sehr nützlich, denn da ist die Ausgabe dabei. Problem ist bei mir halt nur, das ich keinen SSH Zugriff geben will, weil der User sowieso a) nicht damit umgehen kann und b) das ganze für mich sehr unsicher ist, da man den Zugriff nicht wirklich 100% absichern kann.
Geht das ganze überhaupt?
mfg
Screen Session Dettach im Script
-
- Beiträge: 120
- Registriert: 10.08.2003 19:30:53
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Screen Session Dettach im Script
Hi,
ich habe es ausprobiert:
Konsole 1:
Konsole 2:
Konsole 3:
Unter Konsole 2 steht: "Es geht", das Kommando wurde also ausgeführt.
Unter "normalen Bedingungen", also in Terminals, funktioniert das.
Du willst das in PHP realisieren, d.h. das, was bei mir in Konsole 3 passiert, kann auch PHP absetzen (per system()-Funktion).
Wenn der Web-User die Ausgabe (von screen) sehen will, wird es umständlicher: Der Direktzugriff fällt flach, da der Webserver kein Terminal ist.
Du könntest aber ein doit-Kommando basteln:
Du schickst also das Kommando an screen.
doit ist ein Script, das die Argumente als Kommando ausführt und die Ausgabe in eine Datei umleitet. Ist die Ausgabe fertig, wird diese Datei z.B. in lastcommand.txt umbenannt.
Im PHP-Script wartest Du, bis lastcommand.txt existiert und gibst diese Datei aus.
Mit dieser Methode kannst Du auch eine Historie von screen erstellen und mittels PHP ausgeben.
mfg
Hamatoma
ich habe es ausprobiert:
Konsole 1:
Code: Alles auswählen
screen -dmS jonny # Startet screen im Daemon-Modus, also keinem Terminal zugeordnet. Entspricht boot-Vorgang.
Code: Alles auswählen
screen -S jonny -x # Zuordnung zu Screen, damit sieht man, was passiert.
Code: Alles auswählen
screen -S jonny -X exec echo "Es geht" # Kommando echo "Es geht" in der Screen-Session ausführen.
Unter "normalen Bedingungen", also in Terminals, funktioniert das.
Du willst das in PHP realisieren, d.h. das, was bei mir in Konsole 3 passiert, kann auch PHP absetzen (per system()-Funktion).
Wenn der Web-User die Ausgabe (von screen) sehen will, wird es umständlicher: Der Direktzugriff fällt flach, da der Webserver kein Terminal ist.
Du könntest aber ein doit-Kommando basteln:
Du schickst also das Kommando
Code: Alles auswählen
doit echo "Es geht"
doit ist ein Script, das die Argumente als Kommando ausführt und die Ausgabe in eine Datei umleitet. Ist die Ausgabe fertig, wird diese Datei z.B. in lastcommand.txt umbenannt.
Im PHP-Script wartest Du, bis lastcommand.txt existiert und gibst diese Datei aus.
Mit dieser Methode kannst Du auch eine Historie von screen erstellen und mittels PHP ausgeben.
mfg
Hamatoma