Ze stron podręcznika 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.
Jak znaleźć numer, który został mi przypisany?
Lub lista aktualnie otwartych wyświetlaczy i ich użytkowników?
;
przeddone
.W sesji X zawsze możesz sprawdzić
DISPLAY
zmienną środowiskową, aby uzyskać bieżącą liczbę wyświetlania (echo $DISPLAY
).Znalezienie numerów wyświetlanych przez innych jest trudniejsze. Nie sądzę, że istnieje jakikolwiek standardowy sposób uzyskiwania informacji poza pytaniem wszystkich użytkowników, z którymi ekranami są połączeni, więc każda próba uzyskania tych informacji wymaga pewnego rodzaju hakowania i nie będzie działać we wszystkich przypadkach.
Niektóre opcje podano gdzie indziej w SE, ale na przykład nie będą działać w Debian Wheezy. Jednak wyświetlenie aktualnie aktywnych wyświetlaczy jest łatwe, jak pokazano w poście, który zamieściłem powyżej:
ps axu | grep "X "
pokaże aktualnie uruchomione procesy X, coś w stylu:Pierwszy parametr po
/usr/bin/X
to numer wyświetlania poprzedzony dwukropkiem, a następny pokazuje wirtualny terminal przypisany do sesji.Możesz jednak uzyskać odpowiedź po przejrzeniu listy procesów:
ps axu |grep -3 "X "
Spójrz na następujące wiersze po
/usr/bin/X
- gdy rozpoczyna się sesja X, menedżer okien jest zwykle uruchamiany jako użytkownik, do którego należy sesja, i tam dostajesz nazwę użytkownika. W moim przypadku użytkownik_1 używa KDE, a użytkownik_2 używa LXDE. Jednak to rozwiązanie opiera się wyłącznie na fakcie, że jądro przypisuje nowe identyfikatory procesów w kolejności rosnącej, co może nie zawsze mieć miejsce.źródło
/proc/$pid/environ
, jak wcat /proc/$$/environ | tr '\0' '\n' | grep '^DISPLAY='
. Zobacz moją odpowiedź na inny przykład użycia.Ta odpowiedź ma jedno-liniowe, oparte na
who
& grep/ubuntu//a/230838/152287
who
można skrócić jakow
możesz przeczytać więcej pod linkiem, w tym linijką, aby uzyskać wartość.
To działa. Oto wyjście raspberrypi (rasbian), gdzie wartość wyświetlana jest w kolumnie FROM
źródło
https://gitorious.org/termsql/pages/Home
termsql
jest dobrym narzędziem do wydobywania takich informacji.Znalezienie numeru WYŚWIETLACZA jest jednym z przykładów:
(ustaw zmienną środowiskową DISPLAY na to, na którym obecnie działa X, zakładając, że wywoływany jest plik binarny X
Xorg.bin
)źródło
Mała odmiana odpowiedzi Amira.
ps e
wyświetli środowisko każdego polecenia, oddzielone spacją, aby można je było przekazać bezpośrednio wsed
celu odfiltrowania WYŚWIETLACZA, dając prostsze polecenie niż bezpośrednie czytanie / proc / PID / Environment. (Aby jednak odczytać środowiska innych użytkowników, nadal potrzebujesz uprawnień roota.)Ten kod wyświetli nazwy wszystkich zalogowanych użytkowników z sesjami X i ich numery WYŚWIETLACZA:
źródło