ubuntuusers.de

screen befehl übergeben

Status: Ungelöst | Ubuntu-Version: Server 10.10 (Maverick Meerkat)
Antworten |

Jonso137

Anmeldungsdatum:
26. Februar 2011

Beiträge: Zähle...

Moin, gleich am Anfang habe ich 2 Probleme. Ich würde gern innerhalb eines screens einen Befehl ausführen ohne mich im screen zu befinden. Ist es auch möglich diesen Befehl zu übergeben wenn ich nur einen screen habe und diesen per screen -r auswähle? Eigentlich müsste das doch funktionieren: screen -r -X say Hallo Vorrausgesetzt, dass ein Programm im screen läuft was den Befehl say interpretiert. Das zweite Problem ist, dass ich gerne die uptime des Servers in einer Variable speichern würde. Daher das ich mich noch nicht solange mit Shell Scripten beschäftige bitte ich euch die Syntax des folgenden Befehls zu korrigieren: var = /proc/uptime | cut -d'.' -f-1 Den Wert möchte ich anschließend durch 60 teilen um auf die Minutenzahl zu kommen. Danach soll überprüft werden, ob var > 85 ist. Danke =)

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi Jonso137,

erstmal willkommen auf dem Forum !

Wie Du siehst, ist Dein Post zu einem einzigen Textblock zusammengeflossen, weil Du weder Codeblöcke noch Absätze verwendet hast.
Schau Dir mal die Foren-Syntax an: http://wiki.ubuntuusers.de/Wiki/Syntax

Aber zu Deiner Frage: Was meinst Du mit "Screen" ..? - und "say" kenne ich auch nicht.

Dann musst Du ein paar Eigenheiten der Shell beachten. Z.B. bei Variablen-Zuweisungen darf kein Leerzeichen vor / hinter dem "=" stehen.
Was Du willst ist wohl in etwas dieses:

var="$(< /proc/uptime)"
var=${var%%.*}
var=$(( var / 60 ))

Blätter mal ein wenig im Bash-Manual - da steht das alles drin ...

LG,

track

UrbanFlash Team-Icon

Avatar von UrbanFlash

Anmeldungsdatum:
21. Februar 2006

Beiträge: 5549

Wohnort: Wien

screen ist ein sog. Terminalmultiplexer. Also eine Art Fensterverwaltung fürs Terminal. Ich bevozuge aber vorkonfigurierte Version von byobu, das bietet vernünftige Hotkeys und eine Statusleiste mit einer Fülle an Infos über das laufende System.

Jonso137

(Themenstarter)

Anmeldungsdatum:
26. Februar 2011

Beiträge: 2

Das mit den Zeilenumbrüchen tut mir leid =)

Das meiste habe ich jetzt selber herausgefunden. Das einzige was mir noch fehlt ist wie ich screen einen Befehl übergebe.
"say" war nur ein Beispielbefehl also folgendes Beispiel:

Ich habe eine Anwendung die wenn ich den Befehl say eingebe allen Spielern
auf dem Server das sagt was hinter say steht. Das heißt wenn ich das Programm
starte, dann "say hallo" in die Konsole eingebe sehen alle Spieler auf dem Server
"hallo". Weil ich immer noch per ssh auf meinen Server zugreifen möchte, starte
ich das Programm in einem eigenem Fenster (screen). Sonst würde ja immer auf eine
Eingabe gewartet werden die das Programm verarbeitet.
Jetzt möchte ich außerhalb dieses Fensters dem Fenster in dem das Programm läuft,
ohne hineingehen zu müssen "say hallo" übergeben bzw. ausführen lassen.
Also muss ich dem screen denk ich mal den screen namen auf den ich den Befehl
anwenden möchte und den befehl übergebn also z.B. screen meinscreen say hallo
Ich weiß dafür aber nicht die Syntax bzw. wie das funktioniert.

Vllt kann mir ja jemand helfen der selber mit screens arbeitet.
Danke für die Antworten =)

riffraff

Avatar von riffraff

Anmeldungsdatum:
1. Oktober 2006

Beiträge: 486

Wohnort: Im kühlen Norden

Sorry - den Ausführungen kann ich nicht ganz folgen 😕

Du kannst einer Screensession mit

1
2
3
4
5
man screen

.....
-X
    Send the specified command to a running screen session. You can use the -d or -r option to tell screen to look only for attached or detached screen sessions. 

, also mit der Option "-X" einen Befehl übergeben, ohne sich in der Screensession selbst zu befinden.

Irgendwie habe ich die Vermutung, dass Du das meintest 😊

Schau immer mal als erstes in die entsprechende man-page - meistens steht da alles sehr gut erklärt!

Antworten |