¿Cómo verificar si Xvfb está (ya) ejecutándose en la pantalla: 0?


17

El título lo dice todo. pgrep Xvfbsolo hace la mitad del truco. No me dirá el número de pantalla.

Respuestas:


23

No estoy seguro de lo que está tratando de lograr, pero puede verificar si una pantalla X está disponible ejecutando "x información de pantalla":

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

Nota: si no puede acceder a la pantalla, también se informará como "Gratis". Otra forma es verificar si existe /tmp/.X0-lockel archivo PID de un servidor X.

En lugar de mostrar el comando, una forma más confiable sería verificar los procesos que coinciden con el binario:

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

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


1
xdpyinfohace el truco para mí, gracias! Por cierto. Quiero establecer la variable DISPLAY env basada en Xvfb que se ejecuta en: 0.
Paweł Gościcki


Entonces, ¿estás tratando de obtener el número de pantalla utilizado por Xvfb? Intente usar el comando ps en mi respuesta y use algo como display=":${processes##*:}";display="${%% *}"obtener el número de pantalla (suponiendo que se dé con el comando que se realiza Xorgal menos)
Lekensteyn

Lo tendré funcionando solo :0, por lo que una simple verificación :0es suficiente para mis necesidades. ¡Gracias de nuevo!
Paweł Gościcki

No estoy de acuerdo con el proceso de verificación. El proceso puede estar ejecutándose pero no se ha inicializado por completo. Parece que xdpyinfo sería una mejor solución ya que supongo que se está comunicando con Xvfb.
Nathan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.