web-dev-qa-db-ja.com

ssh経由で接続しているときに現在アクティブなLinux仮想端末を見つける方法は?

状況は次のとおりです。

Debian Linux 6.0を搭載したマルチユーザーデスクトップマシンと、1台のモニターが接続されたATIビデオカードを持っています。私はそれにアクセスできます。次のように、いくつかの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の2つの仮想端末が使用されています。

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

ただし、もちろんアクティブになっているのは1つだけです。つまり、モニターに表示されます。キーボードに座っている人は、Ctrl + Alt + F [78]を使用してそれらを切り替えることができます

したがって、私はリモートホストからsshを介して接続します。現在どのX DISPLAYがアクティブであるかを知る必要があります。出来ますか?私はいたるところにググってみましたが、答えが見つかりません。

7
vadipp

fgconsoleはあなたが探しているものです

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

8
Pablo Martinez

または、Sudoを使用して現在のttyが何であるかを理解したくない場合は、Linux固有のsysfsエントリを使用できます。

$ cat /sys/class/tty/tty0/active
tty8
14
Dmytro Sirenko