ric*_*cab 26 linux xorg x-server
来自 X(7) 手册页
DISPLAY NAMES
From the user's perspective, every X server has a display name of the form:
hostname:displaynumber.screennumber
[...]
displaynumber
[...]
To avoid confusion, each display on a machine is assigned a display
number (beginning at 0) when the X server for that display is started.
Run Code Online (Sandbox Code Playgroud)
如何找到分配给我的显示编号?
或者列出当前打开的显示器及其用户?
Ami*_*mir 32
如果您知道在用户会话中运行的一个进程 ID,并且您有权访问该进程的信息,则可以为DISPLAY变量grep 其环境:
cat /proc/$pid/environ | tr '\0' '\n' | grep ^DISPLAY=
Run Code Online (Sandbox Code Playgroud)
例如,要列出当前计算机上您的 UID 使用的所有主要显示,请使用:
ps -u $(id -u) -o pid= \
| xargs -I PID -r cat /proc/PID/environ 2> /dev/null \
| tr '\0' '\n' \
| grep ^DISPLAY=: \
| sort -u
Run Code Online (Sandbox Code Playgroud)
如果您只登录到一个 X 会话,上面的内容应该只输出一行类似DISPLAY=:0.
zag*_*san 12
在 X 会话中,您始终可以查阅DISPLAY环境变量以获取当前显示编号 ( echo $DISPLAY)。
找出其他人的显示号码更难。我认为除了询问所有用户连接到哪个显示器之外,没有任何标准方法可以获取信息,因此任何获取此信息的尝试都需要某种技巧,并且不适用于所有情况。
在 SE 的其他地方提供了一些选项,但它们不适用于 Debian Wheezy,例如。但是,列出当前活动的显示很容易,如我上面链接的帖子所示:
ps axu | grep "X " 将显示当前正在运行的 X 进程,如下所示:
root 2354 0.0 0.5 23380 18292 tty8 Ss+ Sep15 2:36 /usr/bin/X :1 vt8 -br -nolisten tcp -auth /var/run/xauth/A:1-7xlyuc
root 7901 0.0 0.3 17044 12072 tty7 Ss+ Sep14 5:58 /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/A:0-wckh0a
Run Code Online (Sandbox Code Playgroud)
后面的第一个参数/usr/bin/X是以冒号为前缀的显示编号,下一个参数显示分配给会话的虚拟终端。
不过,您可能会通过查看进程列表得到答案:
ps axu |grep -3 "X "
root 1990 0.0 0.0 0 0 ? S Sep14 0:00 [kjournald]
root 1991 0.0 0.0 0 0 ? S Sep14 0:00 [kjournald]
root 1992 0.0 0.0 0 0 ? S Sep14 0:00 [kjournald]
root 2354 0.0 0.5 23380 18292 tty8 Ss+ Sep15 2:36 /usr/bin/X :1 vt8 -br -nolisten tcp -auth /var/run/xauth/A:1-7xlyuc
root 2359 0.0 0.0 5264 2228 ? S Sep15 0:00 -:1
user_1 2378 0.0 0.0 4920 1348 ? Ss Sep15 0:00 /bin/sh /usr/bin/startkde
user_1 2443 0.0 0.0 3868 348 ? Ss Sep15 0:00 /usr/bin/ssh-agent env TMPDIR=/var/tmp /usr/bin/dbus-launch --exit-with-session /usr/bin/openbox-kde-session
--
root 7500 0.0 0.0 6460 1080 ? Ss Sep14 0:00 /usr/sbin/sshd
ntp 7841 0.0 0.0 5352 1760 ? Ss Sep14 0:17 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 108:111
root 7882 0.0 0.0 3964 716 ? Ss Sep14 0:00 /usr/bin/kdm -config /var/run/kdm/kdmrc
root 7901 0.0 0.3 17044 12072 tty7 Ss+ Sep14 5:59 /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/A:0-wckh0a
root 7906 0.0 0.0 5260 2224 ? S Sep14 0:00 -:0
user_2 7925 0.0 0.0 12924 1560 ? Ssl Sep14 0:00 /usr/bin/lxsession -s LXDE -e LXDE
user_2 7990 0.0 0.0 3868 348 ? Ss Sep14 0:00 /usr/bin/ssh-agent env TMPDIR=/var/tmp /usr/bin/dbus-launch --exit-with-session /usr/bin/startlxde
Run Code Online (Sandbox Code Playgroud)
查看后面的行/usr/bin/X- 当 X 会话开始时,窗口管理器通常作为会话所属的用户启动,并在那里获得用户名。在我的例子中,user_1 使用 KDE,而 user_2 使用 LXDE。但是,此解决方案完全依赖于内核碰巧按升序分配新进程 ID 的事实,这可能并非总是如此。
这个答案有一句话,基于who& grep
https://askubuntu.com/a/230838/152287
who可以缩写为w
您可以在链接中阅读更多内容,包括一行以获取该值。
有用。这是raspberrypi(rasbian)输出,其中显示值位于FROM列中
tim@raspberrypi:~ $ w
19:19:30 up 8:15, 2 users, load average: 0.12, 0.11, 0.09
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
pi tty7 :0 11:04 8:15m 1:15 0.89s /usr/bin/lxsess
tim pts/0 192.168.0.29 19:17 0.00s 1.00s 0.09s w
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109612 次 |
| 最近记录: |