Как я программно тестирую, если возможно соединиться с X-сервером, указанным в $DISPLAY

Конец 'палочки' генератора тональных сигналов обычно имеет корректировку 'усиления'. Удостоверьтесь, что Вы корректируете это соответственно для Вашей среды. Это зависит от физического контакта с медью, если сигнал слаб, хотя я проследил провода через все здание и не нужный

Когда у Вас есть большая интерференция (активные сетевые соединения) или заключенный в оболочку / стойкий к интерференции кабель, Вы испытываете необходимость в проводящем контакте между палочкой и фактическими проводами в кабеле.

8
задан 29 August 2009 в 04:00
3 ответа

Можно попробовать командой xset:

if [[ ! $(xset -q) ]]; then
   # the X server is not reachable
else
   # the X server is reachable
fi
6
ответ дан 2 December 2019 в 23:01

Я предполагаю, что существует лучшее решение. Но можно всегда просто использовать мелкий инструмент как xclock и проверять статус выхода.

if [[ ! xclock ]]; then
  exit 1
fi
pkill xclock

Но человек, который уродлив :-)

Меньше Hacky, помещенный следующее в checkX.c:

#include <X11/Xlib.h>
#include <stdio.h>

int main() 
{
    Display *display;
    if( ! (display=XOpenDisplay(NULL) ) ) {
        return(1);
    }
    return 0;
}

Затем:

gcc -lX11 checkX.c -o checkX
chmod +x checkX

Наконец:

if ./checkX; then
   echo "We are good to go!"
fi
2
ответ дан 2 December 2019 в 23:01
  • 1
    Да, это - первая вещь, которую я рассмотрел, но я хотел что-то это didn' t визуально создают окно:/. Я даже рассмотрел выполнение xclock& и затем уничтожение его. –  Kent Fredric 26 August 2009 в 22:28
  • 2
    xclock - геометрия 1x1 о лучшем, которое я могу сделать для устранения визуального проникновения:/, но это также выделяет пространство задачи на панели задач :( –  Kent Fredric 26 August 2009 в 22:29
  • 3
    Это является первым X программ, которые я когда-либо писал в C, таким образом, не уверенный, если это совершенно надежно :-) –  Kyle Brandt 26 August 2009 в 22:52
  • 4
    А не самая портативная вещь ;-) –  Kyle Brandt 26 August 2009 в 22:56
  • 5
    Это довольно удивительно удобно, просто к сожалению, мои ограничения несколько более трудны. Истина, которая будет сказана, I' m запись ebuild (хинду), таким образом, я должен фактически сделать/everything/в оболочке и предположить, что приложения будут там перед, рука и я не может только добавить двоичные блобы заранее к приложениям сторонних производителей :) –  Kent Fredric 26 August 2009 в 23:02

Вот возможный WayToDoIt, не уверенный, насколько хороший это все же.

  x_works(){
     # If there is no xdpyinfo
     # Bash will return 127
     # If X cant connect, it returns 1
     # If X can connect, it returns 0
     xdpyinfo 1>/dev/null 2>&1
     WORKS="$?"
     return $WORKS
  }

  if x_works; then 
   ...

Это, кажется, работает.

1
ответ дан 2 December 2019 в 23:01
  • 1
    На моей машине Fedora 11 I' m получение: использование xdpyinfo 1$: xdpyinfo [опции] Так или иначе, я думаю, что он походит на хорошую идею использовать xdpyinfo программу. –  Cristian Ciupitu 26 August 2009 в 22:45
  • 2
    ' 1' существует перенаправление stderr для удара ;), не xdpyinfo параметрический усилитель :) –  Kent Fredric 26 August 2009 в 22:58

Теги

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