Tytuł mówi wszystko. pgrep Xvfb
robi tylko połowę lewy. Nie powie mi numer wyświetlacza.
17
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-lock
plik 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
xdpyinfo
załatwia sprawę, dzięki! Btw. Chcę ustawić zmienną DISPLAY env w oparciu o Xvfb działający na: 0.display=":${processes##*:}";display="${%% *}"
aby uzyskać numer wyświetlacza (zakładając, że podano go z poleceniem, które jest wykonywaneXorg
przynajmniej):0
dlatego, że:0
wystarczy proste sprawdzenie dla moich potrzeb. Dzięki jeszcze raz!