Zenity se recusa a trabalhar em segundo plano

1

Estou tentando criar um script bash de base que crie um pop-up em determinadas circunstâncias, no entanto, meu código só funciona quando executado manualmente em um terminal (por exemplo, não em segundo plano). Eu tentei várias coisas como:

screen env DISPLAY=:0.0 su $USER -c 'zenity --warning --text "Warning message here"'

Ou

screen zenity --warning --text "Warning message here"

Passei horas tentando várias coisas diferentes, e sinto que deve haver uma solução simples e estou sentindo falta de algo.

Nada que eu tentei funciona enquanto o script é executado em segundo plano com o cron.

Estou executando o Lubuntu 12.04, LXDE.

Alguma idéia de por que não consigo trabalhar?

    
por grochmal 28.01.2014 / 19:30

2 respostas

1

Eu tive um problema semelhante antes, quando eu verifiquei $DISPLAY , notei que não tinha nada, então eu tive que configurá-lo, e também tive que usar xhost + para permitir que a mensagem aparecesse. / p>

Experimente a seguinte opção de comando para definir a exibição:

xhost +
zenity --warning --text "Warning message here" --display="yourmachine:0.0"
    
por 28.01.2014 / 20:17
1

Parece que o OP resolveu, mas eu tinha a mesma pergunta básica, então aqui está uma solução rápida para qualquer outra pessoa. Quando executado como um processo em segundo plano, o seguinte erro é produzido:

Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

Estou executando o zenity em um script por meio do comando at -f script.sh , para que a variável de ambiente $DISPLAY precise ser definida antes de executar o comando :

env DISPLAY=:0.0 zenity --warning --text "TIME TO CLOCKOUT!"

Agora funciona.

    
por 10.07.2015 / 05:00