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:
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
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 "
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
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.
;
avant ledone
.