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

vad*_*ipp 7 linux desktop x11 tty

情况如下。

我有一台装有 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]                      
Run Code Online (Sandbox Code Playgroud)

因此,使用了两个虚拟终端,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-??????
Run Code Online (Sandbox Code Playgroud)

但当然,在任何给定时刻只有其中一个处于活动状态,即显示在监视器上。坐在键盘前的人可以使用 Ctrl+Alt+F[78] 在它们之间切换

所以,我从远程主机通过 ssh 连接。我需要知道哪个 X DISPLAY 现在处于活动状态。是否可以?我用谷歌搜索了很多地方,找不到答案。

小智 14

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

$ cat /sys/class/tty/tty0/active
tty8
Run Code Online (Sandbox Code Playgroud)


小智 10

fgconsole 就是你要找的

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

  • 我愚蠢到不使用 sudo :) 使用 sudo,它就像一个魅力。非常感谢,问题解决了! (2认同)