Tytuł mówi wszystko. pgrep Xvfbrobi tylko połowę lewy. Nie powie mi numer wyświetlacza.
Tytuł mówi wszystko. pgrep Xvfbrobi tylko połowę lewy. Nie powie mi numer wyświetlacza.
Odpowiedzi:
Nie jestem pewien, co próbujesz osiągnąć, ale możesz sprawdzić, czy X Display jest dostępny, uruchamiając „x display info”:
xdpyinfo -display :0 >/dev/null 2>&1 && echo "In use" || echo "Free"
Uwaga: jeśli nie możesz uzyskać dostępu do wyświetlacza, zostanie również zgłoszony jako „bezpłatny”. Innym sposobem jest sprawdzenie, czy istnieje /tmp/.X0-lockplik PID serwera X.
Zamiast wyświetlać polecenie, bardziej niezawodnym sposobem byłoby sprawdzenie procesów pasujących do pliku binarnego:
pids=$(pidof /usr/bin/Xvfb)
if [ -n "$pids" ]; then
processes="$(ps --format command --no-headers -ww --pid $pids)"
else
echo "Not running"
fi
Źródło: https://github.com/Bumblebee-Project/Bumblebee/blob/master/install-files/common-functions#L112
display=":${processes##*:}";display="${%% *}"aby uzyskać numer wyświetlacza (zakładając, że podano go z poleceniem, które jest wykonywane Xorgprzynajmniej)
:0dlatego, że :0wystarczy proste sprawdzenie dla moich potrzeb. Dzięki jeszcze raz!
xdpyinfozałatwia sprawę, dzięki! Btw. Chcę ustawić zmienną DISPLAY env w oparciu o Xvfb działający na: 0.