Comment vérifier si Xvfb est (déjà) en cours d'affichage: 0?


17

Le titre dit tout. pgrep Xvfbne fait que la moitié du tour. Il ne me dira pas le numéro d'affichage.

Réponses:


23

Je ne suis pas sûr de ce que vous essayez d'accomplir, mais vous pouvez vérifier si un affichage X est disponible en exécutant "x display info":

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

Remarque: si vous ne pouvez pas accéder à l'affichage, il sera également signalé comme "gratuit". Une autre façon consiste à vérifier l'existence de /tmp/.X0-lockce qui contient le fichier PID d'un serveur X.

Au lieu d'afficher la commande, un moyen plus fiable serait de vérifier les processus correspondant au binaire:

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

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


1
xdpyinfofait l'affaire pour moi, merci! Btw. Je veux définir la variable env DISPLAY basée sur Xvfb fonctionnant sur: 0.
Paweł Gościcki


Vous essayez donc d'obtenir le numéro d'affichage utilisé par Xvfb? Essayez d'utiliser la commande ps dans ma réponse et utilisez quelque chose comme display=":${processes##*:}";display="${%% *}"pour obtenir le numéro d'affichage (en supposant qu'il soit donné avec la commande qui est effectuée pendant Xorgau moins)
Lekensteyn

Je vais le faire fonctionner uniquement :0, donc une simple vérification :0suffit pour mes besoins. Merci encore!
Paweł Gościcki

Je ne suis pas d'accord avec la vérification des processus. Le processus peut être en cours d'exécution mais n'a pas été complètement initialisé. xdpyinfo semble que ce serait une meilleure solution car je suppose qu'il communique avec Xvfb.
Nathan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.