• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Aus Shell bestimmte Konsole ansprechen

Hallo,

ich würde mir gerne ein kleines Programm in der Shell basteln, welches explizit eine Konsole anspricht und auf dieser ausgeführt wird.

Ausgangspunkt ist eine kleine .sh-Batch, welche einen bestimmten Befehl (das starten eines Servers) auf bspw. Konsole1 (STRG+ALT+F1) startet.

Ist dies so überhaupt möglich?




Mfg Tom
 

abgdf

Guru
Also, ich find's nicht so leicht:

Man kann "stdin" und "stdout" zwar nach "/dev/tty1" umleiten, aber das bewirkt immer noch nicht, daß der Befehl dann auch laut "ps x" dort ausgeführt wird.
Mit "write", mit "exec" oder mit "stty" geht das anscheinend auch nicht.
Code:
echo "ls" > /dev/tty1"
bewirkt zwar, daß "ls" (und Return) dort angezeigt wird, es wird aber nicht ausgeführt.

Würde auch gern Befehle zur bash pipen, die dort auf tty1 läuft, aber es läuft eben mehrmals "bash", und was schreib ich hinter "|", wenn ich nur die PID habe ?

Denke schon daran, Tastatureingaben auf tty1 zu emulieren :? ...

Also, wie geht das ?
 
abgdf schrieb:
Also, ich find's nicht so leicht:

Man kann "stdin" und "stdout" zwar nach "/dev/tty1" umleiten, aber das bewirkt immer noch nicht, daß der Befehl dann auch laut "ps x" dort ausgeführt wird.
`ps x` ist schlechtes Beispiel, nehmen wir besser mal `top` (das ist interaktiv).
Nein, das geht nicht. Du müsstest die tty1-bash zuerst anhalten (standardmäßig wartet diese, dass ein Befehl terminiert, aber nur wenn man einen eingegeben hat - hat man ja auf tty1 nicht), damit die Ein-/Ausgabe von top nicht mit bash kollidiert.
Was willst du überhaupt damit bezwecken, ps auf tty1 ausführen zu können?
 

abgdf

Guru
Hallo,

mit "ps" hatte ich mich wohl etwas mißverständlich ausgedrückt :oops:.
KartoffelKiffer möchte doch einen Befehl auf einer bestimmten Text-Konsole ausführen, ohne daß er ihn dort per Tastatur eingibt:
Ausgangspunkt ist eine kleine .sh-Batch, welche einen bestimmten Befehl (das starten eines Servers) auf bspw. Konsole1 (STRG+ALT+F1) startet.
Als freie Testkonsole hatte ich bei mir mal tty1 genommen (Befehl "tty" sagt: /dev/tty1) und wollte von tty2 dorthin längere Zeit was senden, also hab ich auf tty2 eine kleine Endlosschleife gemacht:
Code:
#!/bin/bash
while [ 1 ]
do
echo "Hallo"
done
Das hab ich dann "scr" genannt und als root so ausgeführt, daß der Output nach tty1 geleitet wird:
Code:
./scr &>/dev/tty1
Dann hab ich auf tty3 geguckt, was "ps" dazu sagt, wo "scr" läuft. In der TTY-Spalte von "ps" steht, "scr" läuft auf tty2.
So war das von mir mit "ps" gemeint. Leider ist das aber noch nicht die Lösung :roll:.

Viele Grüße
 
Oben