De X (7) páginas man
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.
¿Cómo puedo encontrar el número de pantalla que me han asignado?
¿O enumerar las pantallas abiertas actualmente y sus usuarios?
;
antes dedone
.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: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 "
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.fuente
/proc/$pid/environ
, como encat /proc/$$/environ | tr '\0' '\n' | grep '^DISPLAY='
. Vea mi respuesta para otro ejemplo de uso.Esta respuesta tiene una sola línea, basada en
who
& grep/ubuntu//a/230838/152287
who
puede abreviarse comow
Puede leer más en el enlace que incluye una línea para obtener el valor.
Funciona. Aquí está la salida raspberrypi (rasbian), donde el valor de visualización está en la columna FROM
fuente
https://gitorious.org/termsql/pages/Home
termsql
es una buena herramienta para extraer información como esa.Encontrar el número de PANTALLA es uno de los ejemplos:
(establezca la variable de entorno DISPLAY en la pantalla en la que se está ejecutando X en este momento, suponiendo que se llame al binario X
Xorg.bin
)fuente
Una pequeña variación en la respuesta de Amir.
ps e
generará el entorno de cada comando, con un espacio separado para que se pueda pasar directamentesed
a filtrar DISPLAY, dando un comando más simple que leer / proc / PID / environment directamente. (Sin embargo, para leer los entornos de otros usuarios aún necesita permisos de root).Este código generará los nombres de todos los usuarios conectados con X sesiones, y sus números DISPLAY:
fuente