Cron não pode executar gnome-terminal

4

Eu configurei o seguinte cron na minha máquina local.

* * * * * /bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh

O conteúdo de open-console.sh é o seguinte: -

#! /bin/sh
gnome-terminal --full-screen --hide-menubar -e /home/JSX/Stuff/J/login-check/handle-user.sh

Deveria abrir outro script sh no terminal. Mas nada está acontecendo. Há mais alguma coisa que eu precise fazer? Como reiniciar um serviço ou algo assim para o cron job começar a ser executado?

*** Os caminhos absolutos dados nos arquivos estão corretos. Quando entrei no comando /bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh diretamente no terminal, funcionou.

    
por Sparky 19.10.2012 / 08:39

1 resposta

9

Cron não tem idéia de onde a tela atual está (do ponto de vista, pode haver muitos funcionando), então não pode - facilmente - iniciar um terminal gráfico. Se você é o único usuário da máquina com apenas uma sessão X, você pode tentar definir sua variável DISPLAY

export DISPLAY=:0.0

em open-console.sh , mas não tenho certeza se isso funcionará.

O objetivo principal do cron é iniciar serviços não interativos que são executados em segundo plano em pontos de tempo específicos. Outras tarefas devem ser tratadas com dbus e ConsoleKit, mas isso é um pouco mais complicado, veja esta questão .

    
por January 19.10.2012 / 08:50