Конец 'палочки' генератора тональных сигналов обычно имеет корректировку 'усиления'. Удостоверьтесь, что Вы корректируете это соответственно для Вашей среды. Это зависит от физического контакта с медью, если сигнал слаб, хотя я проследил провода через все здание и не нужный
Когда у Вас есть большая интерференция (активные сетевые соединения) или заключенный в оболочку / стойкий к интерференции кабель, Вы испытываете необходимость в проводящем контакте между палочкой и фактическими проводами в кабеле.
Можно попробовать командой xset:
if [[ ! $(xset -q) ]]; then
# the X server is not reachable
else
# the X server is reachable
fi
Я предполагаю, что существует лучшее решение. Но можно всегда просто использовать мелкий инструмент как 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
Вот возможный 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
...
Это, кажется, работает.