En la sesión X, siempre puede consultar la DISPLAY
variable de entorno para obtener su número de visualización actual ( echo $DISPLAY
).
Descubrir los números de visualización de los demás es más difícil. No creo que haya una forma estándar de obtener la información que no sea preguntar a todos los usuarios a qué pantalla están conectados, por lo que cualquier intento de obtener esta información requiere algún tipo de piratería y no funcionará en todos los casos.
Hay algunas opciones dadas en otras partes de SE pero no funcionarán en Debian Wheezy, por ejemplo. Sin embargo, enumerar las pantallas actualmente activas es fácil, como se muestra en la publicación que he vinculado anteriormente:
ps axu | grep "X "
le mostrará los procesos X que se están ejecutando actualmente, algo como lo siguiente:
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
El primer parámetro después /usr/bin/X
es el número de pantalla prefijado por dos puntos, y el siguiente le muestra el terminal virtual asignado a la sesión.
Sin embargo, puede obtener su respuesta al mirar la lista de procesos:
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
Mire las líneas después /usr/bin/X
: cuando comienza la sesión X, generalmente se inicia un administrador de ventanas como el usuario al que pertenece la sesión, y allí obtiene el nombre de usuario. En mi caso, user_1 está usando KDE y user_2 está usando LXDE. Sin embargo, esta solución se basa únicamente en el hecho de que el núcleo está asignando nuevas ID de proceso en secuencia ascendente, lo que podría no ser siempre el caso.
;
antes dedone
.