如何在通过 ssh 连接时找出当前活动的 Linux 虚拟终端?

如何在通过 ssh 连接时找出当前活动的 Linux 虚拟终端?

情况如下。

我有一台多用户台式机,装有 Debian Linux 6.0 和一块 ATI 显卡,连接了一台显示器。我拥有它的 root 访问权限。可以启动多个 KDE 会话,如下所示:

$ 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]                      

因此,使用了两个虚拟终端,tty7 和 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-??????

但当然,在任意时刻,只有一个是活动的,即显示在显示器上。坐在键盘前的人可以使用 Ctrl+Alt+F[78] 在它们之间切换

因此,我通过 ssh 从远程主机进行连接。我需要知道现在哪个 X DISPLAY 处于活动状态。这可能吗?我在 Google 上搜索了所有地方,但找不到答案。

答案1

fgconsole 就是你要找的

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

答案2

或者,如果您不想使用sudo来确定当前tty是什么,您可以使用 Linux 特定的sysfs条目:

$ cat /sys/class/tty/tty0/active
tty8

相关内容