À partir des pages de manuel 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.
Comment puis-je trouver le numéro d'affichage qui m'a été attribué?
Ou lister les écrans actuellement ouverts et leurs utilisateurs?
;
avant ledone
.Dans la session X, vous pouvez toujours consulter la
DISPLAY
variable d'environnement pour obtenir votre numéro d'affichage actuel (echo $DISPLAY
).Trouver les numéros d'affichage des autres est plus difficile. Je ne pense pas qu'il existe un moyen standard d'obtenir les informations autre que de demander à tous les utilisateurs auxquels ils sont connectés, donc toute tentative d'obtenir ces informations nécessite une sorte de piratage et ne fonctionnera pas dans tous les cas.
Il y a quelques options données ailleurs dans SE mais elles ne fonctionneront pas sur Debian Wheezy, par exemple. Cependant, répertorier les écrans actuellement actifs est facile, comme le montre l'article que j'ai lié ci-dessus:
ps axu | grep "X "
vous montrera les processus X en cours d'exécution, quelque chose comme ceci:Le premier paramètre après
/usr/bin/X
est le numéro d'affichage préfixé par deux points, et le suivant vous montre le terminal virtuel affecté à la session.Vous pourriez obtenir votre réponse en consultant la liste des processus, cependant:
ps axu |grep -3 "X "
Regardez les lignes après
/usr/bin/X
- lorsque la session X démarre, un gestionnaire de fenêtres est généralement démarré en tant qu'utilisateur auquel appartient la session, et là vous obtenez le nom d'utilisateur. Dans mon cas, user_1 utilise KDE et user_2 utilise LXDE. Cependant, cette solution repose uniquement sur le fait que le noyau attribue de nouveaux ID de processus dans un ordre croissant, ce qui n'est pas toujours le cas.la source
/proc/$pid/environ
, comme danscat /proc/$$/environ | tr '\0' '\n' | grep '^DISPLAY='
. Voir ma réponse pour un autre exemple d'utilisation.Cette réponse a une ligne unique, basée sur
who
& grep/ubuntu//a/230838/152287
who
peut être abrégé enw
vous pouvez en savoir plus sur le lien, y compris un one-liner pour obtenir la valeur.
Ça marche. Voici la sortie de raspberrypi (rasbian), où la valeur d'affichage est dans la colonne FROM
la source
https://gitorious.org/termsql/pages/Home
termsql
est un bon outil pour extraire de telles informations.Trouver le numéro DISPLAY est l'un des exemples:
(définissez la variable d'environnement DISPLAY sur quel affichage X s'exécute actuellement, en supposant que le binaire X est appelé
Xorg.bin
)la source
Une petite variation sur la réponse d'Amir.
ps e
affichera l'environnement de chaque commande, séparé par un espace afin qu'il puisse être transmis directement àsed
pour filtrer DISPLAY, donnant une commande plus simple que de lire / proc / PID / environ directement. (Cependant, pour lire les environnements d'autres utilisateurs, vous avez toujours besoin des autorisations root.)Ce code affichera les noms de tous les utilisateurs connectés avec des sessions X et leurs numéros DISPLAY:
la source