получение первого не отображает используемое число

Я должен дать команду как

Xvfb:6 - экран 0 1024x768x24

Где 6 может быть число дисплея. Теперь Xvfb может уже использовать тот Дисплей, поэтому как я получаю первое число дисплея, не используемое?

1
задан 18.03.2010, 14:59

2 ответа

Может быть более легкий путь, но я записал бы сценарий, который запрашивает дисплеи с xdpyinfo.

Существует в значительной степени 3 случая:

  1. Дисплей существует, и Ваша оболочка имеет доступ к дисплею. xdpyinfo выложит много информации.

  2. Дисплей существует, и Ваша оболочка не имеет доступа к дисплею. xdpyinfo выложит ошибку доступа и неспособное к ошибке открытия, как это:
    Invalid MIT-MAGIC-COOKIE-1 keyxdpyinfo: unable to open display ":0".

  3. Дисплей не существует. xdpyinfo выложит неспособное к ошибке открытия:
    xdpyinfo: unable to open display ":1".

Сценарий немного походил бы на это:

#/bin/bash
CHECKDISPLAY=0
DONE="no"

while [ "$DONE" == "no" ]
do
   out=$(xdpyinfo -display :$CHECKDISPLAY 2>&1)
   if [[ "$out" == name* ]] || [[ "$out" == Invalid* ]]
   then
      # command succeeded; or failed with access error;  display exists
      (( CHECKDISPLAY+=1 ))
   else
      # display doesn't exist
      DONE="yes"
   fi
done

echo "first available display is :$CHECKDISPLAY"
0
ответ дан 17.12.2019, 00:46

xvfb-управляемый имеет флаг --auto-servernum который работает путем поиска этих X, привязывают файлы /tmp.

Хлюпавший в одну строку, которую Вы могли исказить в своем .bashrc, он похож на это:

i=0; while [ -f /tmp/.X$i-lock ]; do i=$(($i + 1)); done; echo $i

Если бы Вы просто пытаетесь запустить программу с набором дисплея к Xvfb, я просто использовал бы xvfb-управляемый.

1
ответ дан 17.12.2019, 00:46

Теги

Похожие вопросы