X comandos não iniciam do meu trabalho

3

Estou aprendendo sobre os comandos de programação do Linux, incluindo at , cron , sleep etc. Estou tentando iniciar gedit após x minutos por meio do comando at . Isso é o que eu tenho:

kedar@i5 ~ $ at now + 1 minute
at now + 1 minute
warning: commands will be executed using /bin/sh
at> ./s.sh
at> <EOT>
job 18 at Fri Aug 15 13:21:00 2014

O conteúdo de s.sh (-rwxr - r--):

#!/bin/sh
#set $DISPLAY=:0
echo "Created on" 'date' >t.txt
gedit #(also tried /usr/bin/gedit and 'gedit' and systen(/usr/bin/gedit))

Após 1 minuto, o t.txt é criado com o conteúdo esperado. No entanto, gedit não é lançado. Aliás, nenhum dos meus programas ( firefox , xcalc , xfce4-terminal etc) pode ser lançado desta forma via at .

O mais estranho é que, quando executo ./s.sh no bash, gedit se abre bem.

Também tentei executar at (de um arquivo - se isso estiver correto) como:

kedar@i5 ~ $ at now + 1 minute -f ./s.sh

Eu acho que há algo errado com a maneira como estou usando at com o script de shell. Também não posso usar at sem um script de shell? Obrigado.

    
por black_stallion 15.08.2014 / 10:08

1 resposta

3

Você precisa definir a variável de exibição, mas isso é feito como:

#!/bin/bash
export DISPLAY=":0"
gedit

e depois

at now + 1 minute -f test.sh

funciona para mim em Ubuntu 14.04.1 LTS

    
por 15.08.2014 / 10:15