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.