Wie finde ich das aktuell aktive virtuelle Linux-Terminal heraus, während ich über ssh verbunden bin?


7

Die Situation ist wie folgt.

Ich habe einen Mehrbenutzer-Desktop-Computer mit Debian Linux 6.0 und eine ATI-Videokarte mit einem angeschlossenen Monitor. Ich habe Root-Zugriff darauf. Es können mehrere KDE-Sitzungen wie folgt gestartet werden:

$ w
 21:51:30 up ? days,  4:22,  ? users,  load average: 1.72, 1.68, 1.67
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
u1       pts/0    :0               Sat18    4days  0.00s 11.68s kdeinit4: kded4 [kdeinit]                      
u2       pts/5    :1               Mon17    2days  0.00s  6.65s kdeinit4: kded4 [kdeinit]                      

Es werden also zwei virtuelle Terminals verwendet, tty7 und tty8:

$ ps aux|grep /usr/bin/[X]
root      2944  3.1 12.4 670040 1019904 tty7   Ss+  Aug27 187:52 /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/A:0-??????
root      5507  0.9  3.7 425136 309676 tty8    Ss+  Aug29  29:38 /usr/bin/X :1 vt8 -br -nolisten tcp -auth /var/run/xauth/A:1-??????

Aber natürlich ist zu einem bestimmten Zeitpunkt nur einer von ihnen aktiv, dh er wird auf dem Monitor angezeigt. Jemand, der an der Tastatur sitzt, kann mit Strg + Alt + F zwischen ihnen wechseln [78].

Also verbinde ich mich über ssh von einem Remote-Host. Ich muss wissen, welches X DISPLAY jetzt aktiv ist. Ist es möglich? Ich habe überall gegoogelt und kann die Antwort nicht finden.


spinics.net/lists/linux-api/msg01144.html scheint ein abgelehnter Patch zu sein ..
kagali-san

@mhambra Ich bin mit dem Akzeptanzprozess von Linux-Kernel-Patches nicht ganz vertraut, aber wie können wir feststellen, dass er wirklich abgelehnt und nicht nur vergessen wird?
Vadipp

@mhambra Wie auch immer, vielen Dank. Vielleicht muss ich meinen Kernel neu erstellen, um diese Aufgabe zu erfüllen, aber ich würde mich sehr freuen, eine andere Lösung zu finden ... Vielleicht etwas Codierung, aber ohne den Kernel zu berühren.
Vadipp

1
benutze einfach fgconsole, wie Pablo sagte; überprüft mit ssh Login zu meiner Box, es funktioniert
Kagali-San

Antworten:


8

fgconsole ist das, wonach Sie suchen

http://linux.die.net/man/1/fgconsole


Sorry, aber es macht nicht was ich will. Es wird nur gedruckt Couldnt get a file descriptor referring to the console. Irgendwelche Ideen, was der Grund sein könnte?
Vadipp

2
Ich war dumm genug, kein Sudo zu benutzen :) Mit Sudo funktioniert es wie ein Zauber. Vielen Dank, Problem gelöst!
Vadipp

14

Alternativ können Sie einen Linux-spezifischen Eintrag verwenden , wenn Sie nicht sudoherausfinden möchten, wie hoch der aktuelle Wert ttyist sysfs:

$ cat /sys/class/tty/tty0/active
tty8
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.