Iniciando o aplicativo X11 (Firefox) via crontab

Iniciando o aplicativo X11 (Firefox) via crontab

Quero escrever um crontab que abra o Firefox a cada minuto (só para testar, sei que não faz sentido). Meu problema é que mesmo que o crontab esteja ativo, nada acontece. Esta é a aparência do meu crontab:

SHELL=/bin/bash
PATH=~/bin:/usr/bin:bin
* * * * * export DISPLAY=:0.0 xhost localuser /usr/bin/firefox

Alguma ideia de por que não está funcionando?

Responder1

export DISPLAY=:0.0 xhost localuser /usr/bin/firefox

Só de olhar para o comando cron acima, posso ver por que ele não funciona. O uso do exportcomando é

export name[=word]...

Em shells POSIX, o restante das palavras a seguir export DISPLAY=:0.0serão tratadas como outras variáveis ​​de shell que devem ser exportadas para o ambiente – e não como comandos que serão executados. POSIX (edição 7, edição de 2018) também especifica que umnomedeveria estar

uma palavra que consiste apenas em sublinhados, dígitos e caracteres alfabéticos do conjunto de caracteres portáteis.

Isso significa que os nomes das variáveis ​​​​do shell não podem conter caracteres, portanto, /tentar incluir /usr/bin/firefoxna lista de nomes de variáveis ​​​​a serem exportados geraria um erro com uma mensagem como not a valid identifierou bad variable name.


Além disso, o xhostcomando é usado incorretamente. Execute xhostsozinho para ver se você precisa adicionar sua conta de usuário como usuário permitido. Isso só precisa ser executado uma vez e não deve ser agendado pelo cron.


A menos que haja algum outro mecanismo que impeça os programas de se conectarem ao servidor de exibição X, as linhas acima podem simplesmente ser substituídas por:

DISPLAY=:0.0
* * * * * /usr/bin/firefox

Isso deve abrir uma nova janela do Firefox a cada minuto. Também não há necessidade de especificar a SHELLvariável de ambiente – e como você está especificando o caminho completo para o firefoxexecutável, também não há necessidade de definir a PATHvariável.


Veja também:Especificação POSIX paraexport

informação relacionada