+ Responder ao Tópico



  1. #1
    belvio
    Visitante

    Padrão comando cron e at

    já pesquisei estes comandos aki no forum e encontrei alguma coisa mas estou com algumas duvidas tipo eu edito legal o arquivo atraves do comando crontab -e e coloco ele para fazer uma coisa simple tipo abrir um determinado programa em uma determinada hora tipo assim

    0 11 * * * /usr/bin/xterm

    listo atraves do comando crontab -l e vejo que esta armazenado ate onde eu entendo era para ele abrir o xterm todos os dias as 11 horas mas ele simplesmente nao faz nada nem da msn de erro, a mesma coisa acontece com o comando at uso a seguinte sintaxe:

    at now + 2 minutes
    at> xterm
    at> Ctrl ^D

    depois uso o comando atq e vejo que foi armazenado para rodar
    se nao me engando era para abrir o xterm depois de 2 minutos so que tb nao acontece nada e nenhuma msn de erro aparece alguem ai pode me ajudar

    so lembrando que nao tem nenhum usuario no arquivo cron.deny e ja tentei como root tb e nada.

  2. #2
    Visitante

    Padrão comando cron e at

    Voce pode tentar:
    crie um script executável no qual estão incluidas algumas variáveis do usuário, como $HOME, $PATH, etc e a chamada para o terminal como /usr/X11R6/bin/xterm | ls .
    Defina no cron a chamada para esse script, ao invés de chamar o executável diretamente. Pode ser que ele não esteja achando as variáveis de ambiente antes de executar o comando.
    00 11 * * * /home/voce/executavel.sh
    Não esqueça de dar permisão de execução ao script...

    Fui,

  3. #3
    Arkanoid
    Visitante

    Padrão comando cron e at

    O comando agendado pelo crontab está rodando como root ou como um usuário normal? Dependendo do caso, o X deve estar rodando com o usuário correspondente, ou com permissão para conexão (comando xhosts, eu acho; não sei dizer).

    Ainda, quando o xterm rodar, ele vai procurar uma variável de ambiente chamada DISPLAY que indica qual o Xserver que ele tem que conectar, e quando ele é startado pelo cron, esta variável não deve estar setada.
    Se o X estiver rodando na mesma máquina (e acessível ao usuário que for rodar esse agendamento, como disse), crie um script assim:
    Código :
    export DISPLAY=:0.0
    /usr/bin/xterm
    E agende esse script.

    Se o Xserver estiver em outra máquina, a cfguração daquela variável DISPLAY seria:
    Código :
    export DISPLAY=192.168.0.1:0.0