Xvfb'nin (zaten) ekranda çalışıp çalışmadığını nasıl kontrol edebilirim: 0?


17

Başlık her şeyi söylüyor. pgrep Xvfbsadece hile yarısı. Bana ekran numarasını söylemez.

Yanıtlar:


23

Neyi başarmaya çalıştığınızdan emin değilim, ancak "x ekran bilgisi" ni çalıştırarak bir X Ekranın mevcut olup olmadığını kontrol edebilirsiniz:

xdpyinfo -display :0 >/dev/null 2>&1 && echo "In use" || echo "Free"

Not: Ekrana erişemiyorsanız, ekran da "Ücretsiz" olarak bildirilir. Başka bir yol, /tmp/.X0-lockbir X sunucusunun PID dosyasını içeren varlığını kontrol etmektir .

Komutu görüntülemek yerine, binary ile eşleşen işlemleri kontrol etmek daha güvenilir bir yol olacaktır:

pids=$(pidof /usr/bin/Xvfb)
if [ -n "$pids" ]; then
    processes="$(ps --format command --no-headers -ww --pid $pids)"
else
    echo "Not running"
fi

Kaynak: https://github.com/Bumblebee-Project/Bumblebee/blob/master/install-files/common-functions#L112


1
xdpyinfobenim için hile yapar, teşekkürler! Btw. Üzerinde çalışan Xvfb dayalı DISPLAY env değişkenini ayarlamak istiyorum: 0.
— Paweł Gościcki


Yani Xvfb tarafından kullanılan ekran numarasını almaya mı çalışıyorsunuz? Cevabımda ps komutunu kullanmayı deneyin display=":${processes##*:}";display="${%% *}"ve ekran numarasını almak gibi bir şey kullanın ( Xorgen azından yapılan komutla verildiğini varsayarak )
— Lekensteyn

Sadece üzerinde çalışmasını sağlayacağım, bu :0yüzden basit kontrol :0ihtiyaçlarım için yeterli. Tekrar teşekkürler!
— Paweł Gościcki

Süreç kontrolüne katılmıyorum. İşlem çalışıyor olabilir ancak tam olarak başlatılmadı. Xdpyinfo daha iyi bir çözüm gibi görünüyor çünkü Xvfb ile iletişim kurduğunu varsayıyorum.
— Nathan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.