crontab xinput retorna resultados vazios

2

Eu fiz um arquivo /root/startup.sh (eu estou no Ubuntu com o Gnome 3.22.3 com acesso root) com o seguinte conteúdo:

#!/bin/bash
DISPLAY=":0"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SHELL="/bin/bash"

$(/usr/bin/xinput list > /root/Desktop/output.txt)

e eu coloquei esta linha no arquivo crontab -e :

* * * * *  /bin/bash /root/startup.sh

mas depois de um minuto, quando o arquivo output.txt é criado e quando abri-lo, ele está vazio e não há conteúdo nele.
Por quê?

    
por newpeople 04.05.2017 / 09:02

2 respostas

1

Há tantos artigos na web, muitas perguntas e respostas sobre esse assunto, mas nenhum deles me notificou sobre esse erro bobo:

export DISPLAY=":0"
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export SHELL="/bin/bash"

Isso deve ser usado em vez das 3 linhas da minha pergunta.
Eu deveria ter adicionado export antes deles.
E isso funciona.

    
por newpeople 04.05.2017 / 20:48
1

Na minha experiência, você também precisa definir a variável XAUTHORITY.

export XAUTHORITY=/home/<user>/.Xauthority

Como você está iniciando seu script como root através do cron, provavelmente o usuário root não possui um arquivo .Xauthority. Mas como você é root na sessão cron, você pode usar aquele do seu usuário comum.

    
por user680858 04.05.2017 / 22:00