Uma maneira simples e eficaz de testar se o seu servidor de exibição está disponível e é válida para testá-lo com xhost . Você não pode confiar sempre na verificação de um valor na variável DISPLAY , pois pode ser definido com um valor inválido.
if xhost >& /dev/null ; then echo "Display exists"
else echo "Display invalid" ; fi
A razão pela qual eu faço isso é porque eu executo vários scripts no meu usuário crontab que operam no visor quando ele existe, mas funcionam de forma diferente quando não. Na parte superior do meu crontab , defino a variável DISPLAY para :0 , mesmo que ainda não exista. Scripts no crontab que começam com @reboot serão iniciados independentemente de você ter uma exibição ou não. Isso permitirá que você detecte dinamicamente quando seu monitor aparece e entra no mesmo script.
NOTA: O >& só funciona em bash > = 4. Caso contrário, use > /dev/null 2>&1