На 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
Перший параметр після /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
Подивіться на рядки після того, /usr/bin/X
як X сеанс починається, як правило, користувач вікон запускається як користувач, до якого належить сеанс, і там ви отримуєте ім'я користувача. У моєму випадку user_1 використовує KDE, а user_2 використовує LXDE. Однак це рішення покладається виключно на той факт, що ядро призначає нові ідентифікатори процесу у висхідній послідовності, що може бути не завжди.
;
доdone
.