Nella sessione X, puoi sempre consultare la DISPLAY
variabile di ambiente per ottenere il numero di visualizzazione corrente ( echo $DISPLAY
).
Scoprire i numeri visualizzati dagli altri è più difficile. Non credo che ci sia un modo standard per ottenere le informazioni se non quello di chiedere a tutti gli utenti a cui sono collegati, quindi ogni tentativo di ottenere queste informazioni richiede una sorta di hacking e non funzionerà in tutti i casi.
Ci sono alcune opzioni date altrove in SE ma non funzioneranno su Debian Wheezy, per esempio. Tuttavia, elencare i display attualmente attivi è facile, come mostrato nel post che ho linkato sopra:
ps axu | grep "X "
ti mostrerà i processi X attualmente in esecuzione, qualcosa di simile al seguente:
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
Il primo parametro successivo /usr/bin/X
è il numero visualizzato con i due punti, e il successivo mostra il terminale virtuale assegnato alla sessione.
Potresti ottenere una risposta dall'elenco dei processi, tuttavia:
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
Guarda le righe dopo /usr/bin/X
: all'avvio della sessione X, un gestore di finestre viene in genere avviato come l'utente a cui appartiene la sessione e lì ottieni il nome utente. Nel mio caso user_1 sta usando KDE e user_2 sta usando LXDE. Tuttavia, questa soluzione si basa esclusivamente sul fatto che il kernel stia assegnando nuovi ID di processo in sequenza crescente, il che potrebbe non essere sempre il caso.
;
prima didone
.